コントローラはデータを計算して操作し、結果をビューに渡すためのもので、ビューは結果をHTMLにレンダリングします。
マークアップを表示または非表示にするには、ビュー内でif
ステートメントを使用する必要があります。
変更セクションに多くの情報が含まれている場合は、部分ビューを使用し、その内容を変数としてメインビューに渡すことをお勧めします。これらすべてをコントローラーでやっています。
はCodeIgniterの中でそれを行うには:
コントローラー:
class Foo extends CI_Controller {
public function bar()
{
// prevent getting error.
$data['partial'] = '';
// check if user is logged in.
if ($this->session->userdata('user_id') == TRUE) {
$data['partial'] = $this->load->view('partial/baz', '', TRUE);
} else {
$data['partial'] = $this->load->view('partial/qux', '', TRUE);
}
$this->load->view('my_view', $data);
}
}
仮定:user_id
はCIセッションに設定されている場合、ユーザ・ログに
ビュー:
<?php echo $partial; ?>
あなたは[テンプレート](http://codeangel.org/articles/simple-php-template-engine.html)との混乱を避けています。宗教のようにCIを守る代わりに、いくつかの[基本](https://en.wikipedia.org/wiki/Model_view_controller)を学ぶことで恩恵を受ける可能性があります。 –
@tereško私はテンプレートをまったく使用するつもりはありませんでしたが、このケースではどのように役立つのか分かりました。 – Ermir
あなたは既にテンプレートを使用しています。あなたは少なくともコードを見て、コード署名者の「ビュー」と比較することができました...しかし、CIがどのように書かれているかを理解できれば、それを使用しないでしょう。 –