我想为主模板布局放置默认的元数据描述标签 .
在许多情况下,我需要使用视图中的自定义数据替换描述和关键字等默认元标记 .
我试过了:
$this->registerMetaTag
在我需要自定义元标记的视图中,我也在主布局中使用了它 .
我想如果我将使用带有ID或名称的元标记,它将被替换,但结果会显示重复的元标记,例如
<meta id="main_index" name="Description" content="my default content added by layout.">
<meta id="main_index" name="Description" content="my customized content added by the view"></head>
提供默认描述标记的最佳方法是什么,但只要我调用 $this->registerMetaTag
就可以按视图自定义
3 回答
这是我的解决方案,它更简单,没有冗余控制器 . 您只需要在app params中定义默认标记并在视图中覆盖它们 .
config/params.php
views/layouts/main.php
现在,如果我需要设置自定义标签,我会在视图中覆盖params
views/site/index.php
我自己做了,因为我的目标不是在每个动作上重复一个默认关键字或其他元标记,但是我想要替换的地方我会使用registerMetaTag .
所以现在可以从param的配置文件中添加所有自定义关键字author等元标记作为默认值 .
现在,您创建的任何新控制器都只是使用MyController进行扩展,因此默认情况下将附加所有上述元标记 .
如果您需要替换元标记或自定义某些操作,请执行以下操作 .
您可以使用类似的ID管理已注册的元标记 . 确保使用Yii生成元标记 . 根据您的问题,您已经生成了一个无法替换的仪表标签,因为Yii没有管理它 .