(cakephp) モデルの機能 findメソッド
モデルの機能
⭐︎ findメソッド(データの取得)
データベースからデータを取得する機能
1. find('all') → まとめてデータを取得
データの件数が多いと、全件データを取得することは現実的でないので、
1 **conditionsを指定して対象しぼる!!!!!**
2 **limitを指定して最大件数を指定する!!!!**
<?php class FriendsController extends AppController { public function index() { $data = $this->Friend->find('all'); debug($data); } } Array ( [0] => Array ( [Friend] => Array ( [id] => 1 [first_name] => Andy [last_name] => 荒川 ) ) [1] => Array ( [Friend] => Array ( [id] => 2 [first_name] => Bob [last_name] => 防坂 ) ) SELECT `Friend`.`id`, `Friend`.`first_name`, `Friend`.`last_name` FROM `friends` AS `friend` WHERE 1=1
条件付きfind('all')
<?php class FriendsController extends AppController { public function index() { $options = array( 'conditioins' => array( 'Friend.first_name' => 'Andy',ˆ 'Friend.id <' => 2000, ), 'order' => array('Friend.first_name ASC'), //昇順 'limiit' => 10 ); $data = $this->Friend->find('all'); } }
⭐︎オプションに指定できるキー
- order データのソート順 ASC DESC ランダムに取得したい 'order' => 'rand()',
- condition データ取得の検索条件 以外は ['NOT' =>'Model.tag']
- limit 取得するデータ取得条件の最大
- fields どのカラムを取得するか
2. find('list') → データを単純なリストで取得
IDとラベルが対になったリストとして取得する
<?php class FriendsController extends AppController { public function index() { $options = [ limit => 3 ]; $data = $this->Friend->find('list', $options); debug($data); } } Array ( [1] => 設楽 [2] => 上村 [3] => 服部 )
3. find('first') → データを一件だけ取得
<?php class FriendsController extends AppController { public function index() { $sql = 'SELECT * FROM friends as friend WHERE id IN (1,2)'; $data = $this->Friend->query($sql); } }