如何阻止cakePHP 2.1重定向所有新视图?

时间:2013-11-13 14:34:46

标签: cakephp redirect

我希望你能原谅我糟糕的英语,我讨厌自动翻译服务......所以我自己写。的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处于活动状态。程序员无法记住他为实现此行为所做的工作。我无法想办法解决这个问题。

您是否有任何建议可以找到代码编程的位置?

1 个答案:

答案 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();
}