libro
www.tuyano.com
初心者のためのCakePHP2 プログラミング入門

データを検索する (1/4)

作成:2011-11-21 08:08
更新:2011-12-06 19:34

■全データを取り出す

では、前回作成したMySampleDataモデルクラスを使って、データベースを利用して見ることにしましょう。まずは、データの一覧を取り出してみましょう。

前回、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’と指定することですべてのデータを取り出すことができます。

※プログラムリストが表示されない場合

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 プログラミング入門」に戻る