$this->set('title', 'Title Name');在 CakePHP 3.x 中不起作用 [英] $this->set('title', 'Title Name'); not working in CakePHP 3.x

查看:14
本文介绍了$this->set('title', 'Title Name');在 CakePHP 3.x 中不起作用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

基本上在 default.ctp 我的标题中有这个:

Basically in default.ctp I have this for my title:

<title>
  <?= $this->fetch('title') ?>
</title>

在控制器内部我有这条线:

And inside of the controller I have this line:

$this->set('title', 'Test-Title');

但是它什么也没做,它仍然显示控制器名称(Jobs,控制器全名 os JobsController.ctp)

But it does nothing, it still displays controllers name(Jobs, controllers full name os JobsController.ctp)

但是如果我把它放在我的视图文件中:

But if I put this inside of my view file:

$this->assign('title', 'Test-Title');

它改变了标题.那么 $this->set('title', $title) 有什么问题?

It changes the title. So what is wrong with $this->set('title', $title) ?

推荐答案

你可以在你的控制器中set()变量:

You can just set() the variable in your controller:

// View or Controller
$this->set('title', 'Test-title');

然后将其用作布局或视图中的标准变量:

Then use it as a standard variable is in your layout or view:

<!-- Layout or View -->
<title>
    <?php echo $title; ?>
</title>

此处的详细信息:http://book.cakephp.org/3.0/en/views.html#setting-view-variables

使用 assign() 是不同的,这就是它与 fetch() 一起使用的原因.assign() 与视图块一起使用:http://book.cakephp.org/3.0/en/views.html#using-view-blocks

Using assign() is different, which is why it works with fetch(). assign() is used with View Blocks: http://book.cakephp.org/3.0/en/views.html#using-view-blocks

这篇关于$this->set('title', 'Title Name');在 CakePHP 3.x 中不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆