我正在使用CakePHP的Auth组件,它位于app_controller.php
。
现在我想允许来自页面控制器的特定视图。我该怎么做?
答案 0 :(得分:13)
将cake / libs / controllers中的pages_controller.php文件复制到app / controllers / dir。然后你可以修改它来做你想做的任何事情。使用auth组件,允许特定访问的典型方法如下:
class PagesController extends AppController {
...
function beforeFilter() {
$this->Auth->allow( 'action1', 'allowedAction2' );
}
...
我建议将文件高度复制到控制器目录,而不是将其编辑到位,因为这样可以更轻松地升级蛋糕,并且不太可能意外覆盖某些内容。
答案 1 :(得分:11)
您可以将以下内容添加到app_controller。
function beforeFilter() {
if ($this->params['controller'] == 'pages') {
$this->Auth->allow('*'); // or ('page1', 'page2', ..., 'pageN')
}
}
然后你不必复制页面控制器。
答案 2 :(得分:5)
我没有尝试过其他方法,但这也是允许访问所有静态页面的正确方法,因为显示是常见操作。 在app_controller中:
//for all actions
$this->Auth->allow(array('controller' => 'pages', 'action' => 'display'));
//for particular actions
$this->Auth->allow(array('controller' => 'pages', 'action' => 'display', 'home'));
$this->Auth->allow(array('controller' => 'pages', 'action' => 'display', 'aboutus'));