在 CakePHP 3 中调用布尔错误时的成员函数 build()

Posted

技术标签:

【中文标题】在 CakePHP 3 中调用布尔错误时的成员函数 build()【英文标题】:Call to a member function build() on boolean error in CakePHP 3 【发布时间】:2020-09-01 08:54:43 【问题描述】:

我在我的控制器文件中使用以下代码来生成完整的站点 URL

$this->Url->build(['controller' => 'home', 'action' => 'index'], true);.

但我收到“在布尔值上调用成员函数 build()”错误。我不使用的原因

Router::URL(['controller' => 'home', 'action' => 'index']);

我不想要一个相对 URL。我不能在控制器中使用 Url builder 吗?

【问题讨论】:

帮助器用于视图,而不是控制器。 Router::url() 将在传递 true 作为第二个参数时为您提供绝对/完整 URL,因此您可能需要更详细地解释一下您在此处显示的 sn-p 如何没有给您想要的结果。 谢谢@ndm。我没有在Router::URL 中传递true。我已经编辑了我的问题。 【参考方案1】:

我认为,您的错误的主要原因是控制器名称错误。

首先,Name Conventions 说

“控制器类名是复数,PascalCased,以Controller结尾。UsersController和ArticleCategoriesController都是传统控制器名的例子。”

所以你的文件名必须像HomesController.php。接下来类名应该是这样的HomesController

其次,对于 CakePHP,字符大小很重要。如果你想为你的控制器构建 URL,你必须这样做

$this->Url->build(['controller' => 'Home', 'action' => 'index'], true);

控制器名称应大写。

More about building URL in CakePHP

【讨论】:

以上是关于在 CakePHP 3 中调用布尔错误时的成员函数 build()的主要内容,如果未能解决你的问题,请参考以下文章

致命错误:在非对象 cakephp 上调用成员函数 save()

在布尔值上调用成员函数 attach() - Laravel

PHP:致命错误:未捕获的错误:在布尔值上调用成员函数 execute() [重复]

Codeigniter 致命错误:在布尔值上调用成员函数 result()

错误:在控制器操作中调用 null 时的成员函数 create()

致命错误:调用 C:\xampp\htdocs\index.php 中布尔值的成员函数 bind_param()