2

ビューを表示するときに、繰り返し 1 つの変数を含める必要があります。

$this->load->view('login', array('logged_in' => $this->auth->is_logged_in()));
$this->load->view('somepage', array('logged_in' => $this->auth->is_logged_in()));
$this->load->view('anotherpage', array('logged_in' => $this->auth->is_logged_in()));

すべてのビュー出力にこの 1 つの変数を含めるにはどうすればよいですか? テンプレート クラスを拡張するより簡単な方法はありますか?

4

4 に答える 4

3

より簡単な方法の 1 つは、配列を変数にすることです。そのため、常に入力する必要はありません。

$params = array('logged_in' => $this->auth->is_logged_in());
$this->load->view('login', $params);
$this->load->view('somepage', $params);
$this->load->view('anotherpage', $params);

別の方法は、ユーザーがログインしているかどうかを返すヘルパーを作成することです。ヘルパーは、コントローラーとビューでグローバルに利用できます。http://codeigniter.com/user_guide/general/helpers.htmlも参照してください。

于 2012-04-28T11:21:06.030 に答える
0

セッションの使用はどうですか?

$this->session->userdata($var);

またはクッキー

$this->input->cookie($var, TRUE);

ありがとう。

于 2012-04-28T11:44:43.133 に答える
0

すばらしい解決策です、ゴードン!ただし、場合によっては、Most Simple Template Libraryを使用することもできます。

よろしく!

于 2012-05-01T13:36:25.503 に答える
0

ビュー内からクラスに直接アクセスすることもできます。

<?php if( $this->auth->is_logged_in() ): ?>
  Hello!
<?php endif; ?>

これは最善の解決策ではありませんが、ユーザー条件でうまく機能することがわかりました。

于 2012-05-01T13:40:44.420 に答える