我遇到了CakePHP 3.0的问题,这对我来说没有意义,希望得到你的帮助解决。我有一个名为users的表名,其控制器名称相同(UsersController)。我可以毫无问题地查看表中的用户,但是当我插入,修改或删除用户时,我收到错误。
当我执行插入时,我收到错误消息:在第56行的布尔UsersController.php上调用成员函数success()
如果我查看控制器类,它看起来像
public function add()
{
$user = $this->Users->newEntity();
if ($this->request->is('post')) {
$user = $this->Users->patchEntity($user, $this->request->data);
if ($this->Users->save($user)) {
$this->Flash->success(__('The user has been saved.'));
return $this->redirect(['action' => 'index']);
} else {
$this->Flash->error(__('The user could not be saved. Please, try again.'));
}
}
$this->set(compact('user'));
$this->set('_serialize', ['user']);
}
第56行是$ this-> Flash->成功(__('用户已保存。'));
从数据库中插入,更新或删除用户(取决于请求的操作)
令我感到困惑的是,为什么代码会返回错误,最重要的是,我该如何解决?
非常感谢你的时间。
答案 0 :(得分:8)
似乎Flash组件未加载到父类AppController中。因此,您需要手动将其添加到AppController或自定义控制器类,在我的例子中是UsersController。
如果您想将其添加到父类AppController,请打开AppController文件,并在类的旁边添加以下PHP代码段。
public function initialize()
{
$this->loadComponent('Flash');
}
如果您只想在自定义类中加载Flash组件,请在自定义类中添加以下代码段。
public function initialize()
{
parent::initialize();
$this->loadComponent('Flash');
}
这将使您可以使用Flash组件并删除错误,如初始帖子中所述。