제목 | ci4에서 공통 레이아웃은 어떻게 만들어야 할까요? | ||
---|---|---|---|
카테고리 | CI 4 관련 | ||
글쓴이 | 보라색맛났어 | 작성시각 | 2021/04/02 16:43:09 |
|
|||
ci3에서는 application>core 경로에 MY_Loader 파일 만들어서 정의한다음 컨트롤러에서 $this->load->tile('base','main.php',$data); 와 같은 형식으로 불러왔습니다 <?php //예시 class MY_Loader extends CI_Loader { protected $_tilesets = array(); // 타일을 정의함. protected $_ci_interface_paths = array(); // 인터페이스를 정의함 protected $_ci_abstract_paths = array(); // 추상클래스를 정의함 function __construct() { parent::__construct(); $this->_tilesets = array( 'base' => array( 'base' => 'tiles/base/base', 'header' => 'tiles/base/header', 'footer' => 'tiles/base/footer', ), 'adm' => array( 'base' => 'tiles/adm/base', 'header' => 'tiles/adm/header', 'footer' => 'tiles/adm/footer', ) ); $this->_ci_interface_paths = array(APPPATH, BASEPATH); $this->_ci_abstract_paths = array(APPPATH, BASEPATH); } function tile($tileset = 'base', $view, $vars = array(), $return_flag = false) { $vars['header'] = $this->view($this->_tilesets[$tileset]['header'], $vars, true); $data['content'] = $this->view($view, $vars, true); return $this->view($this->_tilesets[$tileset]['base'], $data, $return_flag); } 그런데 ci4에서는 core란 경로 자체가 없어지고 내용도 전혀 달라서 어떻게 해야할지 감이 안 잡히는데 어디에 정의해서 위의 문법처럼 로드할 수 있을까요?
public function index() { echo view('header'); echo view('main'); echo view('bottom'); } 이런식으로 불러올 수 있겠지만 매번 공통부분을 써주는 건 비효율적인거 같아서요 ㅠㅠ |
|||
다음글 | 구성파일 생성 (2) | ||
이전글 | ci4 이미지 전체 경로 문제 (5) | ||
테러보이
/
2021/04/02 17:22:09 /
추천
0
저같은 경우는 그게 귀찮아서 라이브러리로 만들어 사용중입니다 ㅎㅎ
|
PureAni
/
2021/04/02 17:24:41 /
추천
0
service 에 등록하세요.
|
보라색맛났어
/
2021/04/02 17:32:57 /
추천
0
controller>BaseController에 public function tiles(string $page, array $data) { echo view('header'); echo view($page, $data); echo view('bottom'); } 같이 작성하니까 정상 작동되긴 하는데 config>services 쪽에 정의 하는게 좋을까요? |