http://book.cakephp.org/3.0/ja/orm/retrieving-data-and-resultsets.html
から抜粋
find()メソッドの戻り値はQueryオブジェクト。
Queryオブジェクトは行のフェッチ、配列への変換、もしくは all()メソッドの呼び出しをするまでは実行されない。
<?php // すべての article を検索、この時点ではクエリは走らない。 $query = $articles->find('all');
・行フェッチ
<?php // イテレーションはクエリを実行する foreach ($query as $row) { }
・配列への変換。
<?php // クエリから配列への変換はクエリを実行する $results = $query->toArray();
selectエレメントで連想配列が必要なときによく使う。
<?php // コントローラやテーブルのメソッド内で $query = $articles->find('list', [ 'keyField' => 'slug', 'valueField' => 'title' ]); $data = $query->toArray();
・all
<?php // クエリを実行し、結果セットを返す $results = $query->all();
・first
first() メソッドによりクエリから1つ目の行だけをフェッチすることができます。
クエリがまだ実行されいないなら、 LIMIT 1 句が適用されます。
<?php // コントローラやテーブルのメソッド内で $query = $articles->find('all', [ 'order' => ['Articles.created' => 'DESC'] ]); $row = $query->first();