Посмотрите на этот код:
if ($this->request->is('post')){
$this->request->data['Profile']['userId'] = $this->Auth->user('id');
if ($this->Profile->save($this->request->data)){
$this->Profile->setPermissions($this->Profile->id, $this->request->data['Permission']);
$this->NFSSession->setSuccessMessage('Your profile has been updated.');
}else{
$this->NFSSession->setSuccessMessage('There was a problem updating your profile. Please try again.');
}
}else{
echo 'Not a post request!!?!?!?!?!';
debug($this->request->data);
}
Когда я отправляю форму в соответствующем представлении для этого действия, оказывается, что $ this-> request-> is ('post') возвращает false. Другой конец оператора if / else выполняется. Вот странный бит - там есть данные POST, и мой вызов для отладки ($ this-> request-> data) выдает ожидаемые данные!
Вот данные, которые передаются:
Array
(
[Profile] => Array
(
[aboutMe] => Hey there
)
[Permission] => Array
(
[Profile] => Array
(
[aboutMe] => 1
)
)
)
Теперь я, конечно, мог бы просто изменить $ this-> request-> is ('post') на! Empty ($ this-> request-> data), но это не решило бы проблему.
Так что с моим кодом что-то не так? Что происходит?
Спасибо!