2008年02月17日

CakePHP php4でのクエリー系のあれこれ。

cakephp on php4で、ちょこっと嵌ったので紹介。

findBy{フィールド}メソッドは結構便利なので、
使っていたのですが、思わぬ落とし穴。

PHP5とPHP4で書き方が違う罠。

たとえば、
$somemodel->findByUserID($user_id)
とかしたときに、
php5だと、「user_id」のフィールドを検索してくれるのですが、
php4だと、「userid」のフィールドを検索しちゃうのですね。

なので、両方対応ってこととなると、findByメソッドはあまり使わないほうが
いいかなと思うわけです。
(DboSourceを書き換えてPHP4も同様に動かすとかできそうですが。。)

参考: [cakephp]findByで複数条件の指定 | blog.hereticsintheworld
http://blog.hereticsintheworld.com/program/38.html

#AND,OR検索できるとはしらなかった。。


と、もうひとつ。

CakePHP findAll で INNER JOIN する方法 | Sun Limited Mt.
http://www.syuhari.jp/blog/archives/83

beforeFindにjoinさせるテーブルを書き込めばいいんですが、
上の記事の通りにやると、php4ではJOINしてくれません。

なんでかっていうと、$queryDataが戻ってくれないんですね。

というわけで、beforeFindのreturn文を、
return $queryData
で、$queryDataを戻すようにするです。



同じカテゴリー(アレ系)の記事画像
広告枠がくっつき過ぎてイヤンな人へ('-'*
同じカテゴリー(アレ系)の記事
 CakePHP 携帯向けページでセッション (2008-02-18 20:26)
 M$とY!の合体 (2008-02-02 13:17)
 MT3.21 パッチ (2008-01-16 10:02)
 StrictなDoctypeでtarget (2008-01-12 18:42)
 Excel用CSVを作る。 (2007-12-24 12:41)
 広告枠がくっつき過ぎてイヤンな人へ('-'* (2007-12-11 10:28)

Posted by noji at 16:00 | Comments(0) | アレ系
この記事へのトラックバック
CakePHP php4でのクエリー系のあれこれ。:壁|?`) というわけで、beforeFindのreturn文を、 return $queryData で、$queryDataを戻すようにするです。 ずっとこの対処法をさがしてた。 まだcore追いかける...
[CakePHP][php4][findAll]CakePHP php4 FindAllでInnerJoinする方法【omegalphaの日記】at 2008年03月19日 17:24
※このブログではブログの持ち主が承認した後、コメントが反映される設定です。
上の画像に書かれている文字を入力して下さい
 
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。