$ this-> set('title','Title Name');不工作在CakePHP 3.x [英] $this->set('title', 'Title Name'); not working in CakePHP 3.x
问题描述
基本上在default.ctp我有我的标题:
Basically in default.ctp I have this for my title:
<title>
<?= $this->fetch('title') ?>
</title>
在控制器里面有这行:
$this->set('title', 'Test-Title');
但它不做任何事情,它仍然显示控制器名称(作业,控制器全名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屋!