June 16, 2012

FuelPHPのDB::queryで結果をModelに入れて返す方法。

公式ドキュメントに、以下の様なサンプルソースが書いてあります。
http://docs.fuelphp.com/classes/database/usage.html
--
$result = DB::select()->from('users')->as_object('Model_Users')->execute();
--

このサンプルソースを参考に、DB::queryで同じ事を書いてみました。
結果がモデルに格納されて戻ってくるのかなーと思いきや、違いました。
以下のように、最後に->as_array()をつけると、ほぼ、期待通りの結果に。

尚、$queryは任意のSQL文です。

--
DB::query($query)->as_object('Model_Xxx')->execute()->as_array();
--

joinとかunionとか副問い合わせとか、発行したいクエリが複雑になるのであれば
自分で書いてDB::queryを通して、結果はModelでもらう。というのが好きだなー。
メソッドを細かく使って頑張っても、自分が発行したいクエリと
実際に発行されるクエリに差異があっては意味が無いので。
というのが私的な意見です。

その際、bindはちゃんとやりましょう。

No comments:

Post a Comment