CRUDの基本について (3/9)
作成:2015-09-19 11:08
更新:2015-09-19 11:08
更新:2015-09-19 11:08
■エンティティの一覧表示(Read)とindexメソッド
続いて、エンティティの一蘭を表示する「Read(取得)」です。これは、indexアクションとして用意することにしましょう。
まずは、コントローラー側のメソッドの追加です。PersonsControllerクラス内に下のリストのようにindexメソッドを追加して下さい。
今回は、非常にシンプルです。ここではsetメソッドを使い、'persons'という名前で値を保管しているだけです。
問題は、保管している値です。ここでは、以下のような文が指定されています。
これは、Personsの全エンティティを取り出すための処理です。「find」は、エンティティを検索し取得するためのメソッドです。このメソッドはいろいろな使い方ができるのですが、今回は「all」という引数を指定した使い方をしています。これは、全エンティティを検索するための書き方です。
このfind('all')で得られる値は、エンティティの配列になっています。これをそのままsetメソッドで'persons'という変数に設定してあります。後は、テンプレート側で、受け取った配列から値を取り出し表示していけばいいのです。
このようにfindを利用して得られるのは「Query」というオブジェクトで、これを利用して検索を行うのがCakePHP3の基本になっています。このQueryを使った検索の仕組みは「Query Builder」と呼ばれる機能として用意されています。データ検索については、次回、もっと掘り下げて説明する予定です。
まずは、コントローラー側のメソッドの追加です。PersonsControllerクラス内に下のリストのようにindexメソッドを追加して下さい。
今回は、非常にシンプルです。ここではsetメソッドを使い、'persons'という名前で値を保管しているだけです。
問題は、保管している値です。ここでは、以下のような文が指定されています。
$this->Persons->find('all')
これは、Personsの全エンティティを取り出すための処理です。「find」は、エンティティを検索し取得するためのメソッドです。このメソッドはいろいろな使い方ができるのですが、今回は「all」という引数を指定した使い方をしています。これは、全エンティティを検索するための書き方です。
このfind('all')で得られる値は、エンティティの配列になっています。これをそのままsetメソッドで'persons'という変数に設定してあります。後は、テンプレート側で、受け取った配列から値を取り出し表示していけばいいのです。
このようにfindを利用して得られるのは「Query」というオブジェクトで、これを利用して検索を行うのがCakePHP3の基本になっています。このQueryを使った検索の仕組みは「Query Builder」と呼ばれる機能として用意されています。データ検索については、次回、もっと掘り下げて説明する予定です。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
●プログラム・リスト●
public function index() { $this->set('persons', $this->Persons->find('all')); }
※関連コンテンツ
「初心者のためのCakePHP3 プログラミング入門」に戻る