0

我的代码遇到了最奇怪的 Cake 错误。当下面的代码调用 add() 方法(也从不同的控制器复制在这里)时,代码将他重定向回 302 找到的 HTTP 代码到 edit() 操作(本质上,对用户来说,它看起来好像什么都没有发生)。更复杂的是,当我不在该页面上时调用相同的 URL(尽管页面不相互依赖),我会被重定向到我的应用程序的基础,这会导致重定向循环。我尝试从此控制器调用其他方法(使用它们的正确参数)来查看这是否只是 add() 操作的问题,但我得到了相同的重定向循环。我已经检查了整个 SE,但找不到相关的答案。

以下是相关代码:

function edit($id=null) {
 if(!$id) {
    $this->Session->setFlash('Invalid!');
    $this->redirect(array(
        'action' => 'index')
        );

 }
 else {
     //Get the slides themselves
    $slides = $this->Slide->find('all', array('conditions' => array('Slide.module_id' => $id)));
    $this->set('slides', $slides);
    //Get the data for the Module
    $module = $this->Module->find('first',
            array(
                'conditions' => array (
                    'Module.id' => $id
                ),
                'fields' => array(
                    'Module.module_name',
                    'Module.id')
            )
        );
 }
 }

这是 add() 代码(同样,来自不同的模块):

    function add($module = null) {
        if ($this->request->is('get')) {
                        //Set some variables for the view (this code I know works as it has been used successfully elsewhere
        } 
        else { //User is POSTing
        $this->Slide->create();
        $this->Slide->save($this->data);
        }
    }

提前感谢大家;没有你们的支持,我做不到!

编辑:这是 AppController 代码:

public $components = array(
    'Auth' => array(
        'authorize' => array(
            'Actions' => array('actionPath' => 'controllers')
            ),
    'loginAction' => array(
        'controller' => 'users',
        'action' => 'login'
        ),
        'authenticate' => array(
            'Form' => array(
                'fields' => array('username' => 'email')
             )
        ),
    'logoutRedirect' => array('/')          
    ),
    'Session'
);
public $helpers = array('Html', 'Form', 'Session');
public function isAuthorized() {
    return true;
}
public function Controller() {

}

}

4

0 回答 0