コードで最も奇妙な 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() {
}
}