【CakePHP】ViewでJavaScriptを直接記述するには(headに出力する)

2019年7月29日

バージョン:CakePHP 2.x

ViewでJavaScriptのファイルを読み込むのではなく、
コードを直接書く場合は「scriptStart」や「scriptBlock」を使用します。

• scriptStart

index.ctp
1
2
3
4
5
6
7
8
<?php
    $this->Html->scriptStart(array('inline' => false));
    echo
<<<END
        alert('テスト');
END;
    $this->Html->scriptEnd();
?>

• scriptBlock

index.ctp
1
2
3
4
<?php
$script = "alert('テスト');";
$this->Html->scriptBlock($script, array('inline' => false));
?>

オプションのinlineをfalseにすることで、
レイアウトファイルの「$this->fetch('script’)」の部分に出力することができます。

Layouts/default.ctp
1
echo $this->fetch('script');

また、実際の出力は下記のような形になります。

1
2
3
4
5
<script type="text/javascript">
//<![CDATA[
        alert('テスト');
//]]>
</script>

参考:公式サイト(HtmlHelper)

スポンサーリンク