我希望你能原谅我糟糕的英语,我讨厌自动翻译服务......所以我自己写。的xD
我在cakePHP 2.1中工作,但代码不是我的。出于某种原因,当我创建一个创建了正确控制器的新视图时,系统将重定向到根目录。所以,我无法创建新视图。当然,视图存在于控制器中,因为我添加它。
例如,我在cake/Controller/DocumentsController.php
:
function add_pago() {
//I code for food.
}
我创建了一个名为cake/Views/Documents/add_pago.ctp
的新文件,在php标记之后使用此随机代码:
echo "hello, world!";
DocumentsController.php中没有beforeFilter()函数。在AppController.php中,beforeFilter函数如下所示:
public function beforeFilter() {
//Configure AuthComponent
//$this->Auth->allow('display');
$this->Auth->loginAction = array('controller' => 'users', 'action' => 'login');
$this->Auth->logoutRedirect = array('controller' => 'users', 'action' => 'login');
$this->Auth->loginRedirect = array('controller' => 'pages', 'action' => 'display', 'home');
if(!empty($this->data)) array_walk_recursive($this->data, array($this, '__whitespace'));
}
简单ACL处于活动状态。程序员无法记住他为实现此行为所做的工作。我无法想办法解决这个问题。
您是否有任何建议可以找到代码编程的位置?
答案 0 :(得分:0)
在$this->Auth->allow('add_pago');
回调中使用beforeFilter
。
public function beforeFilter() {
//Configure AuthComponent
//$this->Auth->allow('display');
$this->Auth->loginAction = array('controller' => 'users', 'action' => 'login');
$this->Auth->logoutRedirect = array('controller' => 'users', 'action' => 'login');
$this->Auth->loginRedirect = array('controller' => 'pages', 'action' => 'display', 'home');
if(!empty($this->data)) array_walk_recursive($this->data, array($this, '__whitespace'));
$this->Auth->allow('add_pago');
parent::beforeFilter();
}