在 Layouts/default.ctp 中,您将在第 39 行看到类似这样的内容:
<div class="header-title">
<span><?= $this->fetch('title') ?></span>
</div>
fetch
表明它是一个视图块。我在任何地方都找不到这个视图块。
目前它只显示控制器的大写复数形式。意思是说如果你在/users/add
,fetch('title');
给你'Users'
我想改变它。所以我尝试了以下方法:
$this->set('title', 'Login');
在/users/login
控制器动作中。
不工作。
我也试过
$this->assign('title', 'Login');
在/users/login
控制器动作中。
我收到此错误消息:
Call to undefined method App\Controller\UsersController::assign()
我阅读了文档并从这里
我明白了
当您想将视图变量转换为块时,分配块的内容通常很有用。例如,您可能希望使用块作为页面标题,有时将标题分配为控制器中的视图变量:
强调我的。
这表明您可以使用assign
内部控制器。我想我已经证明这是错误的。
也许文件中有错字。请告知我如何设置标题