CakePHP

CakePHP 1.3 でいくつか便利になった事

ビューに埋め込む JavaScript

JavaScript を利用するページが限られている場合、layout に記述すると必要ないページまでロードするので、それは避けたい。そこでコントローラ/アクションに係るビューファイルに記述するのだが、ライブラリの読み込みは head 部に置きたいし、その他のソースもできれば head 部に記述したい。その方法について、「jQueryのAjaxでSelect入替」でやり方を記述していた。

1.2 ではコントローラで予め JavaScript ヘルパーを指定しておく必要があったが、1.3 になって Javascript ヘルパーは非推奨になった。で、代わりに Html ヘルパーで事足りるようになったようだ。

以下、head 部に jQuery の読み込みとイベントプログラムを挿入するための、ビュー上での記述の例です。ただし、layout ファイルでは「echo $scripts_for_layout」を記述しておく必要がある。

<?php
$html->script(array('jquery-1.4.2.min'), false);
$html->scriptBlock(<<<JS
$(document).ready(function() {
	$("button").click(function() {
		return confirm('転送します');
	});
});
JS
, array('inline'=>false));
?>