CakePHP中的元标记

时间:2011-06-27 11:34:49

标签: cakephp

我的情况是这样的:

在我的/views/layout/default.ctp

<head>
      <!-- other stuff -->
      <?php echo $scripts_for_layout; ?>
</head>
<body>
      <!-- more stuff -->
      <?php echo $content_for_layout; ?>

在我的/views/pages/home.ctp

<?php $this->Html->meta('keywords', 'my, keywords', array(), false); ?>

但是,我的问题是即使我的default.ctp中使用$scripts_for_layout,也使用boolean inline = false,我仍然无法在meta中看到head标记相反,我只是看到它们内联。

我正在考虑在我进行HTML帮助程序调用之前回显$scripts_for_layout的情况,但是肯定必须有一种优雅的方法来执行此操作吗?

另请注意,HTML帮助程序调用是views/pages/home.ctp

的第一行

编辑 - 啊哈,我发现了自己的错误。这是其他任何有同样问题的人。使用CakePHP 1.3,HTML帮助程序的语法略有改变(并且语法没有向后兼容性)。

显然,我在view写的内容存在语法缺陷。 这是在版本1.3中说出boolean inline = false的正确方法:

$this->Html->meta("keywords", "keywords, are, sweet", array("inline" => false));

2 个答案:

答案 0 :(得分:2)

啊哈,我发现了自己的错误。显然,我在view写的内容存在语法缺陷。 这是在版本1.3中说出boolean inline = false的正确方法:

$this->Html->meta("keywords", "keywords, are, sweet", array("inline" => false));

答案 1 :(得分:0)

对于CakePHP版本3.x在您的视图中使用此选项:

<?php $this->Html->meta('keywords', 'keywords, are, sweet', ['block' => true]); ?>

然后在你的布局标题中使用:

<?= $this->fetch('meta') ?>

输出将是:

<meta name="keywords" content="keywords, are, sweet"/>