제목 | CI 중복 제거 함수 질문 | ||
---|---|---|---|
글쓴이 | 학학이 | 작성시각 | 2016/09/06 17:30:29 |
|
|||
CI 개발 중 중복되는 View가 여러군데 있어서 이것을 하나의 함수로 만들고 이 함수를 재사용하는 방법으로 개발을 하려고 합니다.
function userList($page=1) { $data = array ( 'top' => $this->layout['top'], 'left' => $this->layout['left'], 'bottom' => $this->layout['bottom'], 'page' => $page ); $this->load->view('userList', $data); } function orderList($order_id=1) { $data = array ( 'top' => $this->layout['top'], 'left' => $this->layout['left'], 'bottom' => $this->layout['bottom'], 'order_id' => $order_id ); $this->load->view('orderList', $data); } 위의 코드를
function userList($page=1) { $data = array_merge( default_views(), array ( 'page' => $page ); ); $this->load->view('userList', $data); } function orderList($order_id=1) { $data = array_merge( default_views(), array ( 'order_id' => $order_id ); ); $this->load->view('orderList', $data); } function default_views() { $views = array ( 'top' => $this->layout['top'], 'left' => $this->layout['left'], 'bottom' => $this->layout['bottom'], ); return $views; }
위와 같이 default_views라는 배열 리턴 함수를 만들어서 3가지 공통되는 부분을 사용하려고 하는데 아무것도 나오지 않네요... 뭐가 문제일까요?
php CI는 초보이고 기존에 JS jQuery에서 $extend로 객체 확장하는 방법을 적용해서 중복 코드 제거 하려고 합니다. |
|||
다음글 | CI hooks 로 로그인 인증 체크하기 질문 (3) | ||
이전글 | 직접 작성한 컨트롤러 접속 시 404에러 문제입니다. (2) | ||
변종원(웅파)
/
2016/09/06 17:37:47 /
추천
0
|
닉
/
2016/09/06 17:38:06 /
추천
0
hook을 이용한 layout 구성을 하시면 좀 더 편하게 원하시는 바를 달성하실 수 있습니다. 내용을 보니 대략적으로 컴포넌트를 뷰로 만들어서 리턴해주려 하는거 같은데 위와같이 리턴하도록 하려면 3번째 인자에 true를 넣으면 뷰를 데이터처럼 사용 하실 수 있습니다. |
학학이
/
2016/09/07 08:46:55 /
추천
0
@변종원 감사합니다. 해결방안과 더 좋은 방법을 알게 되었네요. @닉 hook 한번 알아보고 해보겠습니다. 감사합니다. |
컨트롤러 내부의 다른 컨트롤러 호출은 $this->default_views()라고 써야합니다.
위 방식 보다 __construct()에 배열을 선언하시고 쓰는게 좋습니다.
function __construct()
{
$this->arr = array('a'=>'1');
}
컨트롤러의 메소드 내부에서 $this->arr 로 사용하면 됩니다.