データを検索する (1/4)
作成:2011-11-21 08:08
更新:2011-12-06 19:34
更新:2011-12-06 19:34
■全データを取り出す
では、前回作成したMySampleDataモデルクラスを使って、データベースを利用して見ることにしましょう。まずは、データの一覧を取り出してみましょう。
前回、Scaffoldを使ってすべて自動的に処理を用意しましたが、今回は自分でコードを書いて処理をします。まずは前回作成したMySampleDatasController.phpを開き、下のリストのように記述をしましょう。今回はindexアクションで、全データを取り出すことにします。(なお、ここでは前に作成したSampleレイアウトを使っていますのでそのためのコードが一部混じっています。レイアウトを利用しないならその部分のコードは不要です)
このindex用のビューも用意する必要がありますね。「app」内の「View」フォルダの中に、新たに「MySampleData」というフォルダを用意します。そしてこのフォルダの中に「index.ctp」ファイルを作成して、下のリストのように記述をします。
今回は、とりあえずデータがどんな形で取り出されるかを試してみましょう。/my_sample_datas/indexにアクセスをすると、取り出されたデータが<pre>タグで出力されます。――ここでは、全データを取り出すのに以下のような文を実行しています。
全データを取得するのは、「find(‘all’)」というメソッドを用います。このfindというメソッドはデータの検索をするためのもので、引数に’all’と指定することですべてのデータを取り出すことができます。
前回、Scaffoldを使ってすべて自動的に処理を用意しましたが、今回は自分でコードを書いて処理をします。まずは前回作成したMySampleDatasController.phpを開き、下のリストのように記述をしましょう。今回はindexアクションで、全データを取り出すことにします。(なお、ここでは前に作成したSampleレイアウトを使っていますのでそのためのコードが一部混じっています。レイアウトを利用しないならその部分のコードは不要です)
このindex用のビューも用意する必要がありますね。「app」内の「View」フォルダの中に、新たに「MySampleData」というフォルダを用意します。そしてこのフォルダの中に「index.ctp」ファイルを作成して、下のリストのように記述をします。
今回は、とりあえずデータがどんな形で取り出されるかを試してみましょう。/my_sample_datas/indexにアクセスをすると、取り出されたデータが<pre>タグで出力されます。――ここでは、全データを取り出すのに以下のような文を実行しています。
$datas = $this->MySampleData->find('all');$thisの中に「MySampleData」というプロパティが用意されていることがわかります。コントローラーでは、このようにモデル名のプロパティが自動的に用意され、そこにModelクラスのインスタンスが設定されます。そして、その中にあるメソッドを呼び出すことで、データベースにアクセスするようになっているのです。
全データを取得するのは、「find(‘all’)」というメソッドを用います。このfindというメソッドはデータの検索をするためのもので、引数に’all’と指定することですべてのデータを取り出すことができます。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
●プログラム・リスト●
※MySampleDatasController.php <?php App::uses('AppController', 'Controller'); class MySampleDatasController extends AppController { function index(){ // レイアウト関係 $this->layout = "Sample"; $this->set("header_for_layout","Sample Application"); $this->set("footer_for_layout", "copyright by SYODA-Tuyano. 2011."); // 以下がデータベース関係 $datas = $this->MySampleData->find('all'); $this->set('datas',$datas); } } ※/View/MySampleDatas/index.ctp <h1>Index Page</h1> <p>MySampleData Index View.</p> <pre><?php print_r($datas); ?></pre>
※関連コンテンツ
「初心者のためのCakePHP2 プログラミング入門」に戻る