2016-06-09 3 views
0

При попытке POST API получить следующую ошибку. Я последовал за this учебником, и поэтому я не уверен, почему вставка не работает.CakePHP - API CRUD: Ошибка при вставке в базу данных CakePHP

Message: Call to member function error() on boolean 
Trace: ControllerTrait.php 

Моя функция добавления была сделана испечением, но, несмотря на это, ошибка возникает во время сохранения объекта.

public function add() 
    { 
     $author = $this->Authors->newEntity(); 
     if ($this->request->is('post')) { 
      $author = $this->Authors->patchEntity($author, $this->request->data); 
      if ($this->Authors->save($author)) { 
       $this->Flash->success(__('The author has been saved.')); 
       return $this->redirect(['action' => 'index']); 
      } else { 
       $this->Flash->error(__('The author could not be saved. Please, try again.')); 
      } 
     } 
     $this->set(compact('author')); 
     $this->set('_serialize', ['author']); 
    } 
+1

Само сообщение об ошибке просто связано с тем, что компонент вспышки не был загружен. – AD7six

ответ

1

Вам не нужно add действия, просто удалите его - это именно то, что CR плагин делает для вас.

Если вам необходимо настроить CRUD действие, Вам необходимо return $this->Crud->execute() в конце концов, например:

public function add() 
{ 
    $this->Crud->on('beforeSave', function (Event $e) { 
    // Custom logic before save 
    }); 

    // Make sure CRUD takes care of the rest 
    return $this->Crud->execute(); 
} 

Но да, это будет работать, если вы просто удалить метод add все вместе.

+1

Большое вам спасибо! Я боролся с этим часами – Andy