2011-06-27 8 views
4

私のシナリオでは、次のとおりです。でメタタグ

/views/pages/home.ctp

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

しかし、私の問題がある私には/views/layout/default.ctp

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

私default.ctpにでさえ持つ$scripts_for_layoutこと、そしてboolean inline = falseでは、私はまだheadmetaタグを見ることができず、代わりにインラインで表示されます。

私はそのHTMLヘルパーコールを行う前に$scripts_for_layoutがエコーされるシナリオを考えていますが、これを行うにはエレガントな方法が必要ですか?なるほど、私は私のミスを見つけた -

はまた、HTMLヘルパーコールは私のviews/pages/home.ctp

編集に最初の行であることに注意してください。同じ問題を抱えている人は誰ですか? CakePHP 1.3では、HTMLヘルパーの構文がわずかに変更されています(構文の下位互換性はありません)。

明らかに、私がviewに書いた文法上の欠陥があります。

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

どのバージョンのCakePHPですか?これは1.2の構文です。1.3では若干異なります。 – JJJ

+0

私の答えは無視してください。あなたのレイアウトで出力しようとしていて、 'echo'を省略したと仮定しました! – Ross

答えて

2

なるほど、私は私のミスを見つけた: これは、バージョン1.3でboolean inline = falseを言うことが正しい方法です。明らかに、私がviewに書いた文法上の欠陥があります。 これは、バージョン1.3でboolean inline = falseを言うための正しい方法である:CakePHPのバージョン3.x用の

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

他の人のために、 '<?php echo $ this-> fetch( 'meta');を追加する必要があります。あなたのレイアウトの ''セクションで?>を入力してください。これについては、[この回答](http://stackoverflow.com/a/15112295/1790054)を参照してください。 –

0

あなたのビューでこの:

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

次に、あなたのレイアウトのヘッダの使用中:

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

出力は次のようになります。

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