skillup

技術ブログ

Database PHP

cake sql系+リレーション+ヘルパー

投稿日:

先月末に引き続いてcakeネタをもりっといきます。

といっても自分用の小ネタリンク集です。

sql系の小ネタ

findとread

cakeでsqlを使うときは基本findを使うのがいいようですね。

readというメソッドもあるんですが、なにやらfindのほうが安全のようですね。以下、公式のドキュメントのコピペです。

read はモデルに保持されている dataid の値を上書きするので、 このメソッドを使う時は気をつけてください。特に beforeValidatebeforeSave などの モデルのコールバック関数で使う場合などは注意が必要です。 一般的に find の方が read よりも簡単でより安全にデータを取得することができます。

find(‘count’)の注意点

第二引数でfieldsを書いているとfalseが帰ってきて、うまく取得できません。countを取得するときはfieldsは無しで。
http://www.t-webu.net/cakephp/cakephp%E3%81%AEfindcount%E3%81%AE%E6%B3%A8%E6%84%8F%E7%82%B9.html

findのcondition

10月中のレコードを取得したいなどbetween系

かなりきれいな書き方

http://liginc.co.jp/programmer/archives/235

どちらかというと力づくかな?
http://alpyaca-creates.lv9.org/%E6%97%A5%E4%BB%98%E3%81%AE%E6%9C%9F%E9%96%93%E3%82%92%E6%8C%87%E5%AE%9A%E3%81%97%E3%81%A6find%E3%81%99%E3%82%8B/?ckattempt=1

MySQLでの時間の引き算(勤務時間の算出などに便利)

http://d.hatena.ne.jp/moroto1122/20090131/1233366529

where in など

これはかなりシンプルでいいですね・・・

http://weble.org/2011/07/21/cakephp-find-in

orの書き方

http://monmon.hateblo.jp/entry/20110207/1297068346

like検索

http://otukutun.hatenablog.com/entry/2011/12/10/151243

生sqlの書き方

http://cakephp.popotoo.com/db/56/

リレーションに関して

http://blog.ecworks.jp/archives/268

ここらへんは理解以上にいろんな例を見て、理解する必要あり。

ガチンコ塾でもcakeをやる予定はあるので、受講生に指導できるようにいろいろと工夫しないといけないですね。

独自のhelper

htmlで使うhelperですが、独自に作ることができます。

http://okisanjp.com/archives/683

http://www.kaasan.info/archives/3110

-Database, PHP
-,

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

JPAを使用する  JavaSE編

現在の開発ではデータベースへの接続ではJPAを使っています。このJPAがなかなか曲者でいろいろと詰まることがありましたので解説させていただきます。 Contents1 JPAとは?1.1 メリット1. …

no image

DBの基礎 テーブルとは

CSSを学習したあとはデータベースの学習などを。 参考図書:「達人に学ぶDB設計指南書」基本的にはこれを読んでいきます。が、現状よくわからないところは飛ばしていきます・・・ Contents1 テーブ …

no image

SQLクエリ比較

クエリの比較 SQLにおいては全く同じ結果を返すのであってもその検索結果が異なるということはよくあります。 例えば下記のようなテーブルがあった場合 co_cd | district —&# …

no image

自己結合のイメージ

前回に引き続き結合について考えます。 例えば下記のようなテーブルがあり、重複行を削除するとします。 1 りんご 50 2 みかん 100 3 みかん 100 4 みかん 100 5 バナナ 80 この …

no image

CakePHPのcomponent

CakePHPのComponentについて。 CakePHPでは各コントローラに共通の処理をComponentとしてモジュール化することができます。 わかりやすいところでいえば認証のAuth,Sess …