参考にさせて頂いたページ
データを検索する(4/4):初心者のためのCakePHP2.0 プログラミング入門
「find」メソッドの第2パラメータ
以下は引用。
‘conditions’――検索条件の設定をするものです。検索する項目名をキーにして、検索テキストを値に設定した連想配列を指定します。 ‘fields’――取得する項目の名前を配列で指定します。 ‘recursive’――再帰的に取得する深度の指定です。単純に1つのテーブルからデータを探すだけなら不要です。 ‘order’――並び順です。並び順をチェックする項目順に、項目名を配列でまとめます。 ‘limit’――取り出す最大項目数です。 ‘page’――ページ番号です。limitで指定した個数を1ページとして、何ページ目のデータを取り出すか指定します。 ‘offset’――データの取得を開始する番号(いくつ目から取り出すか)を指定します。
MySampleDatasController.phpの記述内容
参考ページにならって、findメソッドを追加したので、以下の通り。
<?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);
}
function find(){
$this->set("header_for_layout","Sample Application");
$this->set("footer_for_layout","copyright by SYODA-Tuyano. 2011.");
if (isset($this->data['id'])){
//find.tplでsubmitした文字列を$idに格納
$id = $this->data['id'];
//MySampleDataモデルクラスのレコードのうち、idが$idと等しいレコードを$statusに格納
$status = array(
'conditions' => array(
'MySampleData.id' => $id
)
);
//$statusに入っている最初の要素を$dataに格納
$data = $this->MySampleData->find('first', $status);
} else {
$data = null;
}
//$dataをset
$this->set('data',$data);
}
}
View/MySampleDatas/find.ctpの記述内容
参考ページにならって以下の通り。
//このページ./find自身にsubmit
<form method="post" action="./find">
ID:<input type="text" name="id" />
<input type="submit" />
</form>
<table>
<?php if (isset($data)): ?>
<tr>
<td>Name:</td>
<td><?php echo $data['MySampleData']['name']; ?></td>
</tr>
<tr>
<td>Mail:</td>
<td><?php echo $data['MySampleData']['mail']; ?></td>
</tr>
<tr>
<td>Tel:</td>
<td><?php echo $data['MySampleData']['tel']; ?></td>
</tr>
<?php endif; ?>
</table>
このソースコードについて
コメントに書いた。
conditions以外の第二引数についてはこういうのがあるんだなー。ってことだけ読んで、また今度。
今回はここまで。