CakePHPのような、全体のレイアウトファイルがあって、個別のViewファイルはその一部を反映するためのもの、という運用をCodeIgniterで実現する方法について。
ビューの内容を文字列として取得する
$content = $this->load->view('subview', '', true);
viewメソッドはそのまま使うと指定された名前のビューの内容を出力してしまいます。
しかし第3引数にtrueを与えることで、ビューの内容を出力せず文字列として取得できます。
第2引数をセットすることでデータを渡すこともできます。
$content = $this->load->view('subview', $subdata, true);
参考文献
それぞれ「Returning views as data」の項を参照。
取得した文字列を反映して外側のビューを出力する
$data['content'] = $content;
$this->load->view('layout', $data);
取得した文字列を別のビューに渡して反映すれば出力できます。