CakePHP3.x|findメソッドの使い方
スポンサーリンク
最初の1件のレコードを取得する
first()で最初の1件のレコードを取得します。
first()の場合は、戻り値はエンティティーになります。
$member = $this->Members->find()->first();
複数レコードを取得する
all()で複数レコードを取得できます。
戻り値は、エンティティーが複数入っているresultSetになります。
$members = $this->Members->find()->all();
get()でエンティティーを取得する
get()の引数には、プライマリキーの値を指定します。
戻り値はエンティティーです。
$id = 1; $entity = $this->Members->get($id);
where()でwhere句を入れる
where()の引数にカラムをキーとして配列を入れるとwhere句になります。
first()にすると該当したレコードの最初の1件をエンティティで返します。
$id = 1; $member = $this->Members->find()->where(['id' => $id])->first();
where に = 以外の比較(>=など)をおこないたい場合は、以下のように書きます。
$id = 1; $member = $this->Members->find()->where(['id >=' => $id])->all();
select()で取得するカラムを指定する
select()で取得カラムを配列で指定できます。
select()を使わない場合は、select * となります。
$id = 1; $member = $this->Members->find()->select(['id', 'member_name'])->where(['id' => $id])->first();
count()で件数を取得する
count()でレコード件数を取得できます。
$count = $this->Members->find()->where(['sex_id' => 1])->count();
order()で取得順を指定する
$members = $this->Members->find()->order(['id' => 'DESC'])->all();
上記指定では、SQLは ORDER BY id DESC となります。
limit()で取得件数を指定する
$members = $this->Members->find()->order(['id' => 'DESC'])->limit(5)->all();
上記指定では、SQLは ORDER BY id DESC LIMIT 5 となります。
LIKE検索(あいまい検索)をする
カラム名にLIKEを入れるとあいまい検索になります。
以下の例ではメールアドレスを検索しています。
$members = $this->Members->find()->where(['email LIKE' => '%' . $user_name . '%@' . $domain])->all();
OR検索をする
where句にORの配列を用意して、複数配列を渡すとOR1検索になります。
$members = $this->Members->find()->where( [ 'OR' => [ ['id' => '10'], ['id' => '20'], ] ] )->all();
NOT検索をする
where()に配列のキーをNotで指定するとNOT検索になります。
$members = $this->Members->find()->where(['NOT' => ['sex_id' => '1']])->all();
上記指定では、where句は、 WHERE NOT (sex_id = 1)となります。
更新日:2018年08月25日
作成日:2018年06月27日