问题描述
基本上在 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 中不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!



大气响应式网络建站服务公司织梦模板
高端大气html5设计公司网站源码
织梦dede网页模板下载素材销售下载站平台(带会员中心带筛选)
财税代理公司注册代理记账网站织梦模板(带手机端)
成人高考自考在职研究生教育机构网站源码(带手机端)
高端HTML5响应式企业集团通用类网站织梦模板(自适应手机端)