[cakephp]謎のJavaScriptエラーで、本物のエラーが見れない

Notice: Undefined variable: javascript in hoge\cake\app\views\elements\header.thtml on line 10
Fatal error: Call to a member function link() on a non-object in hoge\cake\app\views\elements\header.thtml on line 10

こんなエラーで長らく無意味な苦労してました。

原因は、必要なJavascriptヘルパーの宣言をしていないから。

こんな時は、下記みたいにコントローラー全部に宣言してしまいましょう。
cake/app/app_controller.php

var $helpers = array(‘html’,'javascript’,'Pagination’);

こんなことできるなら、早くやってればよかったー。

[cakephp]定数の定義をするのに最適なとこ

define(‘URL’,'http://www.hoge.com/’);

こんな感じでURLなど定数で定義してあると、開発環境が違うときに大変便利ですよー。
ということで、cakephpはどこで定数を定義すればよいのか。

アプリ全体→app/config/bootstrap.php
コントローラ→app/app_controller.php
モデル→app/app_model.php

[cakephp]findAllByでorderしたい

基本的には下記findAllと同じらしい。

Model::findAll($conditions = null,
        $fields = null,
        $order = null,
        $limit = null,
        $page = 1,
        $recursive = null
)

つまり、

$model = $this->Model->findAllById($id,null,’created DESC’);

これも知ってるか知らないかで差が出ますねー。

[cakephp]findByで複数条件の指定

あらー、もっと早く気づけば良かった。
大変便利だ。

$this->Model->findByIdAndName( $id, $name )

追記(07/11/13)
PHP4の場合は

$this->Model->findById_And_Name( $id, $name )

アンダーバーが入ります。

ローカルはPHP5、運用はPHP4、そんなアンバランスな開発やってると勉強になりますね(笑)

[cakephp]cakephpの命名規則に従わなかったツケがやってきた

最近はもっぱらフレームワークで開発する機会が多くなりました。
現在Cakephpでポータルサイトを開発しているのですが、、、
Read more