gpt4 book ai didi

php - 在 CakePHP 中调用 bool 值的成员函数 success()

转载 作者:可可西里 更新时间:2023-11-01 13:49:16 26 4
gpt4 key购买 nike

我在使用 CakePHP 3.0 时遇到了一个对我来说没有意义的问题,希望得到您的帮助。我有一个名为 users 的表名称和一个名称相同的 Controller (UsersController)。我可以毫无问题地查看表中的用户,但是当我插入、修改或删除用户时出现错误。

当我执行插入操作时,我收到错误消息:Call to a member function success() on boolean UsersController.php on line 56

如果我查看 Controller 类,它看起来像

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

从数据库中插入、更新或删除用户(取决于请求的操作)

令我困惑的是为什么代码会返回错误,最重要的是,我该如何解决这个问题?

非常感谢您的宝贵时间。

最佳答案

父类AppController中好像没有加载Flash组件。因此,您需要将其手动添加到 AppController 或您的自定义 Controller 类,在我的例子中是 UsersController。

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

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

如果您只想在您的自定义类中加载 Flash 组件,请在您的自定义类中添加以下代码片段。

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

这将使 Flash 组件可供您使用,并消除了初始帖子中所述的错误。

关于php - 在 CakePHP 中调用 bool 值的成员函数 success(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39817594/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com