FuelPHPでOrmモデルの1対1でリレーションした表を簡単に一覧表示させる方法
FuelPHPでOrmモデルの1対1でリレーションした表を一覧表示させたい。
まず、2つのテーブルを用意する。
staffテーブル
id | name |
---|---|
1 | 山田 太郎 |
2 | 田中 花子 |
profileテーブル
id | hobby | favorite_food |
---|---|---|
1 | サッカー | うどん |
2 | 映画鑑賞 | パスタ |
Model_StaffとModel_Profileの2つのモデルで下記のソースを書きリレーションさせる。
1 2 3 4 5 6 7 8 9 |
protected static $_has_one = array( 'profile' => array( 'key_from' => 'id',//結合条件の自分側のモデルのid 'model_to' => 'Model_Profile',//結合相手のモデル 'key_to' => 'id',//結合先のid 'cascade_save' => true,//相手のモデルも更新するかどうか。 'cascade_delete' => true,//相手のモデルも削除するかどうか。 ), ); |
コントローラにて、queryメソッドで呼び出す。
1 |
$data['staffs'] = Model_Staff::query()->get(); |
ビューに渡して一覧を表示する。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<table> <tr> <th>名前</th> <th>趣味</th> <th>好きな食べ物</th> </tr> foreach($staffs as $staff){ echo '<tr>'; echo '<td>'.$staff->name.'</td>'; echo '<td>'.$staff->profaile->hobby.'</td>'; echo '<td>'.$staff->profaile->favorite_food.'</td>'; echo '</tr>'; } </table> |
name | hobby | favorite_food |
---|---|---|
山田 太郎 | サッカー | うどん |
田中 花子 | 映画鑑賞 | パスタ |
登録されているデータが一覧で表示されます。
ITエンジニア募集中!
キュアコード株式会社はITエンジニアを募集しております。少人数の職場なので、上流・下流やサーバー・クライアント対応の垣根なく、あなたの強みを活かしながら いろいろなことにチャレンジ可能です。エンジニアとしての未経験の方、経験が少ない方も歓迎しています。
下記よりITエンジニア募集の採用情報をご覧いただけます。