我是很新,蛋糕和現在用的蛋糕2.0和我紛紛出爐自己的看法,控制器等..只顯示操作按鈕來登錄管理員的CakePHP中
我想要做的就是進入我的查看並打包圍繞Edit
和Delete
操作的一些邏輯,並僅顯示它們以登錄管理員。
這聽起來像是正確的做法嗎?我已經鎖定了這些操作,以便只有管理員可以訪問它們,但我不想顯示非管理員這些按鈕。
此外,我不認爲有一個正常的用戶和管理員單獨的看法是正確的做法,但我可能是錯的。
我是很新,蛋糕和現在用的蛋糕2.0和我紛紛出爐自己的看法,控制器等..只顯示操作按鈕來登錄管理員的CakePHP中
我想要做的就是進入我的查看並打包圍繞Edit
和Delete
操作的一些邏輯,並僅顯示它們以登錄管理員。
這聽起來像是正確的做法嗎?我已經鎖定了這些操作,以便只有管理員可以訪問它們,但我不想顯示非管理員這些按鈕。
此外,我不認爲有一個正常的用戶和管理員單獨的看法是正確的做法,但我可能是錯的。
您可以嘗試使用下面的代碼片段在你的AppController中的beforeFilter()方法:
function beforeFilter()
{
$role = $this->Auth->user('role'); //If you are using Auth
//$this->Session->read('User.role'); // If you are using a normal login session.
if ($role == 'author' || $role == 'admin') {
$this->set('role', $role);
}
if($role == 'admin')
{
$this->set('is_admin', true);
}
else
{
$this->set('is_admin', false);
}
/***** your remaining code *******/
}
而在你的看法只需使用以下內容:
if($is_admin)
{
$this->Html->link('Admin Link', 'controllers/view');
}
可以將一個變量傳遞給視圖並檢查它以顯示該命令。
控制器:
...
$this->set('admin', true); //user is an admin and should view the links
...
觀點:
...
if ($admin){echo $this->Html->link('Edit', array('action' => 'edit'))}
...
完美!謝謝!這種方法是皺眉還是很常見? – bigmike7801 2012-08-14 17:39:02
@ bigmike7801這是Ruby On Rails的常見做法,所以我想可以在CakePHP等其他MVC框架中使用它。 – 2013-07-25 16:54:52