Category Archives: CakePHP - Page 2

デバッグツールFirePHP

CakePHPで開発をする時に便利なツールとして、FireCakeというのがありますが、単純にJavaScriptのオブジェクトにして、console.log()するだけなので、あまり大きな配列(オブジェクト)を渡してしまうとFirefox自体が落ちてしまうことがあります。特にCakeのリレーションに任せていると時に膨大な階層のオブジェクトになってしまうことがあるので、、、 実際それを確認したいのですが、確認する前にFirefoxが落ちてしまって何も出来ません。
そんな時にも便利なのが、FirePHPです。
httpヘッダーに乗せているようで、一番シンプルな使い方としてはこんな感じです。

require_once('fb.php');
ob_start(); //output buffering をスタート
fb('$values');

CakePHPのXMLモデル

CakePHPを使っていて、データソースとしてDBからではなく外部のAPIからデータを取りたい事があります。
今までApiComponentなんていうコンポーネントを作って

$this->Api->get('path_to_API');

みたいにしていましたが、こんな方法が用意されていたようです。(1.2だけなのかな…)

uses('Xml');
$xml = new Xml("/path/to/xml");
$xml_array = Set::reverse($xml);

http://www.syuhari.jp/blog/archives/827で紹介されていました。

続・ データが保存できないときに

$this->model::->save($this->data)データを呼んでもなぜか$this->dataの値と違う値がSQLに入る。そんなときはテーブル定義をチェック。そもそもその値が入らない定義になっていない?
こんな情報も、、、

http://cakephp.jp/modules/newbb/viewtopic.php?topic_id=1300&forum=3&post_id=2724#forumpost2724

データが保存できないときに

何をやっても保存できない。debug=2とかしても、そもそもSQL自体実行されていない。
そんな事ある?って思う前にmodelの中に何か書いてないか良く思い出してみましょう。
特にしばらく前に作ったアプリの場合忘れていたバリデーションが潜んでいたりします。

model->findNeighboursの罠

CakePHPのmodelにはfindNeighboursという便利な関数がある。
リファレンスを見ると以下のように書いてある。
$this->set(‘neighbours’, $this->Image->findNeighbours(null, ‘id’, $id);
実際
$this->set(‘neighbours’, $this->Post->findNeighbours(null, ‘title’, $Post['Post']['title']);
などとすると、思い通りの結果が返るが、idの場合はなぜか、
$this->set(‘neighbours’, $this->Post->findNeighbours(null, ‘Post.id’, $id);
のように明示的にテーブル名を指定してあげないと結果が返らない。しかもエラーすらはかない罠。20分以上悩んだ、、、、。

getting health insurance in new york buy clomid online UK major health insurance companies buy levitra uk online what are wells fargo hours buy finasteride affordable health insurance for children accutane no prescription medical center of trinity viagra online uten resept midwestern university wellness center dapoxetine top individual health insurance companies viagra ireland