2
我正在考慮把它放在AppController中,但這意味着我必須在每個視圖文件中爲此使用相同的代碼。我想把它放在標題中,以便在每個視圖上顯示。我也希望在那裏有一些邏輯,如果我登錄,然後只顯示註銷鏈接和我的用戶菜單。同樣,如果我沒有登錄,然後顯示註冊和登錄鏈接。任何人都可以給我一隻手,或者指向正確的方向嗎?謝謝!包含CakePHP登錄/註銷鏈接的最佳方式是什麼?
我正在考慮把它放在AppController中,但這意味着我必須在每個視圖文件中爲此使用相同的代碼。我想把它放在標題中,以便在每個視圖上顯示。我也希望在那裏有一些邏輯,如果我登錄,然後只顯示註銷鏈接和我的用戶菜單。同樣,如果我沒有登錄,然後顯示註冊和登錄鏈接。任何人都可以給我一隻手,或者指向正確的方向嗎?謝謝!包含CakePHP登錄/註銷鏈接的最佳方式是什麼?
//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
中,否定冗餘代碼。
蛋糕3,您需要使用:
$this->request->session()->read('Auth')
哦,我明白了。 Layout.ctp是要走的路。 layout.ctp的伴隨控制器是什麼? – Strawberry 2012-03-05 11:21:20
每個視圖使用佈局;您根據需要定義。沒有專門針對'layout'的控制器。默認佈局文件被稱爲'default.ctp',默認情況下所有視圖都使用。您可以通過在控制器中使用'$ this-> layout ='layout_name'''來調整每個視圖的佈局(或者我相信)。 – Ross 2012-03-05 11:26:37