[CakePHP] 小ネタ3

タグ :

CakePHPの小ネタシリーズの第3段です。
知っていて当然というものばかりですが、覚え書きということで。。。
今回はビューのヘルパーについての小ネタです。

ヘルパーの使用宣言

ヘルパーを使用するときには、「このヘルパーを使います」という宣言をしておく必要があります。
そうしないと、ヘルパー内に記述された関数を呼び出したときに「not found」エラーとなり、正常に表示されません。
コンロトーラ内で以下の宣言コードを記述します。

var $helpers = array('TestTable');

上記のように ‘ ‘ (シングルクォート)内にヘルパークラスの名前(Helperを除いた名前)を記述します。

※ヘルパー以外のコンポーネントなどでも同じように宣言コードが必要ですので、覚えておきましょう。

親クラスの呼び出しについて

ヘルパーに限らず、親クラスとして定義しているのが「App〜.php」というファイルです。

ヘルパーも当然、この親クラスが先に呼び出されているものだと思っていましたが、どうやら親クラスが呼び出されるのは、ドキュメントルートのみっぽいです。。。
(デバッグとしてAppHelper.php内に「echo」で適当な文字列を表示させてみたところ、ドキュメントルートでのURLでは表示されましたが、それ以外では表示されませんでした。)

AppHelper.phpが呼び出されないことで、Helperクラスが定義されなくなってしまうので、「Class ‘Helper’ not found」というエラーが出てしまいます。

このエラーの解決法としては、それぞれのヘルパー内に本来AppHelper.php内で記述するコードを書きます。

App::uses('Helper', 'View');

このコードをファイルの先頭に書くだけでエラーは無くなりました。

Share

  • このエントリーをはてなブックマークに追加

Comment

コメントを残す

*がついている欄は必須項目です。

  • Twitter
  • Facebook
  • Google Plus
  • RSS Feed