CI 묻고 답하기

제목 컨트롤러에 대해서 질문 드립니다.
글쓴이 ssukai 작성시각 2016/02/01 15:19:03
댓글 : 3 추천 : 0 스크랩 : 0 조회수 : 12870   RSS

컨트롤러 에서 조금 헷갈리는 부분이 있어서 질문 드립니다.

 

현재 까지는 컨트롤러에서 _remap을 사용해서 uri->segment(2); 로 해서 클래스 명을 찾아서

switch case문을 사용해서 해왔는데

 

컨트롤러 메뉴얼을 보다 보니깐 _remap을 사용안하고 URI Segments 로  할수 있던데요..

 

<?php

class Products extends CI_Controller {

public function shoes($sandals, $id){
echo $sandals;echo $id;}
}
?>

이런식으로 할수 있던데여..

그럼 혹시 위와 같이 만들어서 하면 공통변수는 각 함수 마다 입력해 줘야 하는건가요?

session->userdate() 나 공통적으로 모든 함수에 들어가는 변수나 상수라던지 하는것들은 위에 한번만 정의해줄수는 없는건가요?

index(), _remap() 둘다 안되던데요..

 

 

 

 다음글 페이징 검색 부분 관련해서 질문좀 드려도 될까요 (3)
 이전글 Ci 내부의 Tomcat 역할 (2)

댓글

한대승(불의회상) / 2016/02/01 15:24:09 / 추천 0

공통변수를 유지 하기 위해서는 세션을 사용하십시오.

ssukai / 2016/02/01 15:40:19 / 추천 0

한대승(불의회상)//  온라인상이라 말을 풀어 쓰는데 조금 어렵군요 ㅎ

제가 말하고자 하는건 아래 코드 처럼 session_id 를 모든 함수에서 호출해서 쓰고 싶은데 Products 클래스 위에 한번 정의해주고

Products 클래스 안에 있는 모든 함수에서 $session_id 변수를 사용하고 싶은데 어떤식으로 할수 있는지에 대해서 궁금합니다.

<?php
class Products extends CI_Controller {
  $session_id = $this->session->userdata('session_id');
  public function shoes($sandals, $id){
     echo $session_id;
     echo $sandals;
     echo $id;
  }
}
?>

 

한대승(불의회상) / 2016/02/01 16:50:27 / 추천 0

생성자 메소드를 작성하면 됩니다.

아래 코드를 확인 하세요.

class Products extends CI_Controller {
 public $session_id;
 public function __construct()
 {
  parent::__construct(); // 빼먹으면 안됨
  $this->session_id = $this->session->userdata('session_id');
 }
 public function shoes($sandals, $id){
  echo $this->session_id;
  echo $sandals;
  echo $id;
 }
}