2012-10-07 14 views
8

雄弁モデルからすべての行をフェッチする場合:Laravel雄弁/流暢

$pin = DB::table('pins')->get(); 

array(2) { 
    [0]=> 
    object(Pin)#36 (5) { 
    ["attributes"]=> 
    array(9) { 
     ["id"]=> 
     string(1) "2" 
     ["creator"]=> 
     string(1) "1" 
    ["original"]=> 
    array(9) { 
     ["id"]=> 
     string(1) "2" 
     ["creator"]=> 
     string(1) "1" 
    } 
    ["relationships"]=> 
    array(0) { 
    } 
    ["exists"]=> 
    bool(true) 
    ["includes"]=> 
    array(0) { 
    } 
    } 
} 

私は流暢代わりに使用したときのよう:

$pin = Pin::all(); 

私のように見える配列を取得

"属性"、 "Orginial"、 "realtionships"なしのプレーンな配列として取得します。インデックス。

Eloquentを使用して、FLuentのようなプレーン配列を返す方法はありますか?

+0

それはいけません。 Eloquentの全般的なポイントは、これらのモデルに対してドメイン特有の特定の方法で対処できる一連のオブジェクトを返すことです。 – Franz

+0

私はそれをエンコードすることができるように、その場合、この配列からデータを取得するための迅速な方法を知っていますか?(バックボーンコレクションに送信しようとしています)ありがとう – silkAdmin

+0

@silkAdmin以下の修正された回答をご覧ください。バックボーン、Angularjsなどのフレームワークで動作する素敵なJSONペイロードを提供するには – Raftalks

答えて

11

非常に簡単です。

$pins = Pin::get(); 
foreach($pins as $p){ 
$pin[] = $p->to_array(); 
} 

か、JSONオブジェクトを送信したい場合は、

$pins = Pin::all(); 
return Response::eloquent($pins); 

を使用してみたり、配列を持っている場合

return Response::json(array('name' => 'Batman')); 
+0

Nopeは同じことをします – silkAdmin

+0

@silkAdmim Franzが彼のコメントで指摘したように、リソースはそこにあります。 foreachループを実行し、to_array()メソッドを使用して配列を取得することができます – Raftalks

+0

入力Rafのためにありがとう、私はその周りに遊びます。 – silkAdmin

1

Laravelが持って使うよりも、JSON出力に変換しますto_array()に組み込まれていますので、このようなことができます。助け

$pins = Pin::all(); 
foreach($pins as $pin) { 
    $pin_array = $pin->to_array(); 
    /* Do something with pin array here */ 
} 

希望:D

Laravel 4で
+0

ありがとうございますto_arrayメソッドは配列として使用できません。all()とget()から返され、オブジェクトではありません。 – silkAdmin

+0

@silkAdminはい、それはモデル(オブジェクト)の配列であり、各オブジェクトをフェッチするために配列を通してforeachループを実行し、単一のオブジェクトに対してto_array()メソッドを呼び出す必要があります。 – Raftalks

3

あなたがやるだけのことができます:JSON形式でデータを返します

//get all pins from db 
public function index(){ 
    return Pin::all(); 
} 

//get specific pin from db 
public function show($id){ 
    return Pin::find($id); 
} 

+0

ありがとう、よく知る – silkAdmin

0

OR

$model->original; 
// but still do a foreach loop. 
// Like so 

$pins = Pin::all(); 
foreach($pins as $pin) { 
    $pin_array = $pin->original; 
    /* Do something with pin array here */ 
}