在 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()