2012-03-05 10 views
2

私はこれをAppControllerに入れることを考えていましたが、これはそれぞれのビューファイルに同じコードを持たなければならないということです。これをヘッダーに入れて、すべてのビューに表示します。私はまた、そこにいくつかのロジックがある場合は、そこにログオンして表示されたリンクと私のユーザーメニューだけを表示する必要があります。同様に、私がログインしていない場合は、登録とログインのリンクを表示してください。誰かが私に手を差し伸べるか、正しい方向に私を向けることができますか?ありがとうございました!CakePHPとのログイン/ログアウトリンクを含める最も良い方法は何ですか?

答えて

5
//layout .ctp 

<div class="header"> 
<?php 
if($this->Session->read('Auth')) { 
    // user is logged in, show logout..user menu etc 
    echo $this->Html->link('Logout', array('controller' => 'users', 'action' => 'logout')); 
} else { 
    // the user is not logged in 
    echo $this->Html->link('Login', array('controller' => 'users', 'action' => 'login')); 
} 
?> 
</div> 

は片道です。コードがlayoutにある場合は、すべてviewに表示され、冗長コードが無効になります。

+0

ああ、私は参照してください。 Layout.ctpはやり方です。 layout.ctpに付随するコントローラは何ですか? – Strawberry

+0

各ビューはレイアウトを使用します。これは必要に応じて定義します。特に 'layout'のためのコントローラはありません。デフォルトのレイアウトファイルは 'default.ctp'と呼ばれ、すべてのビューはデフォルトで使用されます。あなたのコントローラ(またはビュー、私は信じる)で '$ this-> layout = 'layout_name''を使ってビュー単位でレイアウトを調整できます。 – Ross

0

ケーキ3について、あなたはこれを使う必要があります。

$this->request->session()->read('Auth') 
関連する問題