CakePHP2.1でデータの検索(実践編その4)

今日はCakePHPでデータ検索する方法を勉強してみたいと思います。『CakePHPでデータ削除』の続きです。

1. データ検索するのにデータが1件だけでは仕方が無いので、データを数件入力してみました。

2. 検索用のページを表示するためにコントローラにsearchアクションと検索ページ用のsearch.ctpを作成します。

app/Controller/CollectionController.php

public function search(){
 }

app/View/Collection/search.ctp

<h1>検索</h1>
 <?php
 echo $this->Form->create('Search',array('action'=>'index','url'=>'index'));
 echo $this->Form->input('title');
 echo $this->Form->end('検索');
 ?>

3. データ検索後に、index.ctpへ移動するように作成していますので、indexアクションを下記のように修正します。

app/Controller/CollectionController.php

public function index(){
 //リクエストがPOSTの場合
 if($this->request->is('post')){
 //Formの値を取得
 //$title=$this->data['Search']['title'];
 $title=$this->request->data['Search']['title'];
 //POSTされたデータを曖昧検索
 $data=$this->Collection->find('all',array(
 'conditions'=>array('title like'=>'%'.$title.'%')));
 $this->set('Collections',$data);
 }else{ //POST以外の場合
 //Collectionモデルから全てのデータを検索
 $data=$this->Collection->find('all');
 //データの連想配列をセット
 $this->set('Collections',$data);
 }
 }

4. それでは、ブラウザで実際に検索してみます。findメソッドについては、『CakePHP2.1のfindメソッド』に詳細を書いていますので、そちらの方を参照してください。

http://ドメイン名/Collection/search

5. タイトルに『愛』の文字を含むデータが抽出されました。

本日は以上です。

このエントリーを含むはてなブックマーク Buzzurlにブックマーク livedoorクリップ Yahoo!ブックマークに登録

トラックバック&コメント

この投稿のトラックバックURL:

コメントをどうぞ

このページの先頭へ