Метатеги в CakePHP - PullRequest
       1

Метатеги в CakePHP

4 голосов
/ 27 июня 2011

Мой сценарий такой:

По моему /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); ?>

Однако моя проблема в том, что даже при$scripts_for_layout в моем default.ctp, а с boolean inline = false я все еще не вижу тега meta в моем head, вместо этого я просто вижу их встроенными.

Я рассматриваю сценарийчто это $scripts_for_layout отражено до того, как я сделаю этот вызов помощника HTML, но наверняка должен быть элегантный способ сделать это?

Также обратите внимание, что вызов помощника HTML - первая строка моего views/pages/home.ctp

Редактировать - Ага, я нашел свою ошибку.Вот для всех, у кого такая же проблема.В CakePHP 1.3 синтаксис для помощника HTML изменяется незначительно (и нет обратной совместимости для синтаксиса).

Очевидно, что синтаксический недостаток в том, что я написал в моем view, есть.Это правильный способ сказать boolean inline = false в версии 1.3:

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

Ответы [ 2 ]

2 голосов
/ 28 июня 2011

Ага, я нашел свою ошибку. Очевидно, есть синтаксический недостаток в том, что я написал в моем view. Это правильный способ сказать boolean inline = false в версии 1.3:

$this->Html->meta("keywords", "keywords, are, sweet", array("inline" => false));
0 голосов
/ 08 марта 2017

Для CakePHP версии 3.x используйте это по вашему мнению:

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

Тогда в заголовке вашего макета используйте:

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

Вывод будет:

<meta name="keywords" content="keywords, are, sweet"/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...