FuelPHPでOrmモデルのリレーション先をLIKE検索する方法
FuelPHPでOrmモデルのリレーション先をLIKE検索する方法。キーワードの一部で部分一致検索し一覧を表示するものを作ります。
「FuelPHPでOrmモデルの1対1でリレーションした表を簡単に一覧表示させる方法」でリレーションさせた表にレコードを追加したものを使います。
name | hobby | favorite_food |
---|---|---|
山田 太郎 | サッカー | うどん |
田中 花子 | 映画鑑賞 | パスタ |
大井 大五郎 | 水泳 | 肉 |
上田 京子 | バトミントン | お好み焼き |
中村 広 | 絵画制作 | 焼き鳥 |
次に、ビューで検索窓を作ります。リレーション先をLIKE検索できたかどうか確認するために作ります。
1 2 3 4 |
<?php echo Form::open(array('class' => 'form-horizontal'));?> <?php echo Form::input('name',Input::post("name"),array('class' => 'form-control'));?> <?php echo Form::submit('submit', '検索', array('class' => 'btn btn-success'));?> <?php echo Form::close();?> |
コントローラにメソッドチェーンを使ってLIKE検索できるように記述します。
1 2 3 4 5 6 7 |
$query = Model_File::query(); if(Input::post("name")): $query->related('staff')->where('target.name','LIKE',"%".Input::post("name")."%")->get(); endif; $data['staffs'] = $query->get(); |
これで、検索窓で名前の一部を入力して一覧を表示することができます。
「田」を入力して検索すると下記のような一覧が表示されます。
name | hobby | favorite_food |
---|---|---|
山田 太郎 | サッカー | うどん |
田中 花子 | 映画鑑賞 | パスタ |
上田 京子 | バトミントン | お好み焼き |
ITエンジニア募集中!
キュアコード株式会社はITエンジニアを募集しております。少人数の職場なので、上流・下流やサーバー・クライアント対応の垣根なく、あなたの強みを活かしながら いろいろなことにチャレンジ可能です。エンジニアとしての未経験の方、経験が少ない方も歓迎しています。
下記よりITエンジニア募集の採用情報をご覧いただけます。