2016-10-02 80 views
5

我遇到了CakePHP 3.0的一个问题,它对我来说没有任何意义,并且希望能够帮助您解决问题。我有一个名为用户的表名称与名为相同的控制器(UsersController)。我可以查看表中的用户没有任何问题,但是当我插入,修改或删除用户时,我收到错误。在CakePHP中调用布尔型成员函数success()

当我插入我得到的错误信息:调用一个成员函数成功()布尔UsersController.php上线56

如果我期待到控制器类,它看起来像

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-> success(__('用户已被保存。'));

用户插入,更新或从数据库(视请求的动作)

更令人不解我删除是为什么代码返回一个错误,并且最重要的是,我怎么能解决这个问题?

非常感谢您的时间。

+0

请检查'SRC /模板/元/闪光灯/',看看是否有一个名为任何文件'success.ctp' –

+0

是有,它包含:?!

+0

只需从那里删除您的php代码,并只保留HTML代码。它应该工作正常。 –

回答

6

似乎Flash组件未在父类AppController中加载。因此,您需要手动将其添加到AppController或您的自定义控制器类,在我的情况UsersController。

如果您想将其添加到父类AppController中,请打开AppController文件并在该类的一侧添加以下PHP代码片段。

public function initialize() 
{ 
    $this->loadComponent('Flash'); 
} 

因为你想在你的自定义类中加载Flash组件,那么在你的自定义类中添加下面的代码片段。

public function initialize() 
{ 
    parent::initialize(); 
    $this->loadComponent('Flash'); 
} 

这将使您的Flash组件可用,并删除初始文章中所述的错误。

相关问题