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

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

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

■「find」メソッドの第1パラメータ

データの取得は、このようにfindメソッドで行えます。このfindは、全データの取得しかできないわけではありません。引数の指定により、さまざまな形でデータを取り出すことができます。このfindメソッドは、整理すると以下のような形になっています。

find( オプション , パラメータ設定 );

第1引数には、検索し取得するデータに関する指定を示すテキストが用意されます。これは以下のようなものがあります。

all’――検索されるすべてのデータを取得する。
‘first’――検索されるデータの最初のものだけを取得する。
‘list’――検索されるデータのリストを得る。
‘count’――検索されるデータ数を得る。

‘all’の場合、前回やったようなデータ構造になりますが、’first’の場合は、最初のデータだけが連想配列として渡されます。また’list’は、プライマリキーの項目をキーとして、最初の項目の値だけを連想配列としてまとめたものが返されます。’count’は、もちろん整数値です。

これらは、それぞれ取得するデータの構造が違っているので注意が必要でしょう。’all’は先ほどやったので、ここでは’list’の例を上げましょう。indexアクションを下のリストのように修正してみてください。全データのnameだけが一覧表示されます。

index.ctpでのデータの表示部分を見ればわかりますが、ここでは$datasからデータを取り出し、その値をただ出力しているだけです。ここではプライマリキーのid項目はint値になっていますから、’list’の値は、$data[1]=’tuyano’というように、単純にnameがまとめて保管されている配列になっているわけです。

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

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

※indexメソッド

  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('list');
    $this->set('datas',$datas);
  }


※index.ctp

<h1>Index Page</h1>
<p>MySampleData Index View.</p>
<table>
<?php foreach ($datas as $data): ?>
  <tr>
   <td><?php echo $data; ?></td>
  </tr>
<?php endforeach; ?>
</table>

※関連コンテンツ

「初心者のためのCakePHP2 プログラミング入門」に戻る