2013-12-14 4 views
1

Я следовал CakePHP Блог учебник, и я произошла логическая ошибка в cakephp/posts/add РутинногоCakePHP Блог Учебник - Добавить Рутинный

http://book.cakephp.org/2.0/en/tutorials-and-examples/blog/part-two.html

меня по умолчанию cakephp/posts/add распорядка из учебника работает просто отлично, но когда Я дублирую процедуру и пытаюсь переименовать ее в cakephp/apples/add (сообщения в яблоки), кажется, что $this->Apple->save($this->request->data) и $this->redirect(array('action' => 'index')) не работают, это просто обновляет мою страницу и не перенаправляет на индексный просмотр и не сохраняет запись.

public function add() { 
    if ($this->request->is('apple')) { 
     $this->Apple->create(); 
     if ($this->Apple->save($this->request->data)) { 
      $this->Session->setFlash(__('Your post has been saved.')); 
      return $this->redirect(array('action' => 'index')); 
     } 
     $this->Session->setFlash(__('Unable to add your post.')); 
    } 
} 

Какова будет возможная проблема в этом вопросе?

ответ

2

Проблема заключается в этой строке:

if ($this->request->is('apple')) {

Вы проверяете для типа запроса, чтобы определить, является ли это представление формы (обычно POST), следовательно, он должен быть вместо этого

if ($this->request->is('post')) {

0

Ypu должен обрабатывать запрос с $this->request->is('post'); или $this->request->is('get');, и если вы хотите использовать другую модель в контроллере по умолчанию, например, в PostsController хотите, чтобы u se Модель Apple вам нужно загрузить эту модель в контроллер, например $this->loadModel('Apple'); или определить в $ uses переменную, как public $uses = array('Post', 'Apple');

Смежные вопросы