[Cakephp4] findメソッドについて

こんにちわ、masumasuです。

少しずつ暖かくなり春らしさが感じられる頃となりましたが、皆様はいかがお過ごしでしょうか。

今回は、’find’メソッドについて書いていきます。

‘find’ は主にデータベースを検索しデータを取得する際に使用するメソッドです。

以下のように呼び出します。

$query = $user->find();

$userは対象となるデータベーステーブルのモデルです。

all

‘find’の第1引数に’all’を指定すると、全データを取得することが出来ます。

$query = $user->find('all');

上記は、指定されたテーブルのすべてのレコードが取得され、配列として返されます。

list

‘find’の第1引数に’list’を指定すると、レコードのリストを配列で取得することが出来ます。

また、リストのキーとして使用されるフィードと、リストの値として使用されるフィールドを指定出来ます。

$query = $user->find('list', ['conditions' => ['field_name' => $value]]);

上記は、指定された条件に一致するレコードのリストが取得されます。

そして、fiels_name フィールドがキーとして使用され、その値がリストの各エントリーの値として使用されます。

‘find()’は第2引数に連想配列でオプションを設定することが出来ます。

first

‘find’の後ろに’->'(アロー演算子)を使って’first’と記述することで1つ目の結果を取得することが出来ます。

$query = $user->find('all')->first();

firstの他にも、’count’(レコード数を取得)や ‘last’(最後のデータを取得)があります。

where

‘where’ は、特定の条件を指定してデータを取得することが出来ます。

$records = $table->find('all')
    ->where(['field_name' => $value]);

上記は、特定のフィールドが指定された値に等しいレコードを取得しています

配列のキーは条件に使用されるフィールド名であり、値はそのフィールドに一致する必要がある値です。

これにより、データベースから特定の条件に一致するレコードを抽出できます。

まとめ


今回ご紹介したメソッドは一般的によく使われるものですので、ご紹介しきれなかった他のメソッドもあるかもしれません。

興味をお持ちになった方は、調べられてはいかがでしょうか。

ご覧いただきありがとうございました。