はじめに
「優しいIT」という理念の基、ITコンサルタントをしている亀井亮介と申します!
主な仕事は要求分析・要件定義の上流工程から、開発のマネジメントまでしていますが、プライベートでウェブシステム開発をしています!
目的
FuelPHPで、データベースのテーブルから値を取得して、セレクトボックスを表示する方法が幾つかあります。
コントローラーで、値を取得して、ビューに渡す…というのがスタンダードと思っていたのですが、もしかすると、下記の方法が一番簡単で、すっきりしているのではないでしょうか
(深く検証していませんが)
コントローラーを経由せず、ビューにモデルで定義したデータ取得メソッドを使うので、すっきり綺麗に分けられると思います。
ビュー側
echo Form::select(
'round_id'
, Input::post('round_id')
, Arr::pluck(Model_Round::find('all') , 'round_name', 'id')
, array('class' => 'col-md-4 form-control')
);
ポイント
Arr::pluck()メソッドを使い、第1引数にModel_Round::find('all')をセット
Roundsというテーブルから値をすべて取得しリスト化
Arr::pluck(Model_Round::find('all') , 'round_name', 'id')
Arr::pluck()メソッド
第1引数 マスタから取得した配列(Model_Round::find('all')で値をすべて取得)
第2引数 セレクトボックスに表示するカラム
第3引数 セレクトボックスのvalueにセットするカラム