概要
FuelPHPでは、クエリビルダを使ってDBのデータを取得できます。結果に対してas_array()
を使うと2次元の連想配列で取得できます。取得したすべてのレコードをループで処理する場合は、扱いやすい形です。
一方、ある条件に一致するレコードの特定のフィールドを参照するのであれば、1次元の連想配列の方が扱いやすいです。例えば id, name というフィールドの組だけ抽出する場合は、結果に対してas_array('id', 'name')
とすると得られます。
それぞれ具体的な事例で見ていきます。
2次元の連想配列を取得する場合
モデル
class Model_Product extends Model { //商品一覧を取得 public static function select_products() { return DB::select()->from('products')->execute()->as_array(); } }
コントローラ
class Controller_Home extends Controller { public function action_index() { // DBからデータを取得 $products = Model_Product::select_products(); // データの内容を確認 Debug::dump($products); } }
取得した連想配列
1次元の連想配列を取得する場合
as_array()
に引数を指定します。コントローラはそのままです。
モデル
class Model_Product extends Model { //商品名一覧を取得 public static function select_products() { return DB::select()->from('products')->execute()->as_array('id', 'name'); } }
取得した連想配列
id と name の組を key: value の形で取得できました。
ちなみに、as_array('id', 'name', 'price')
としても取得結果は同じでした。3つ目以降の引数は無視されるみたいです。