9

Eloquent Model からすべての行を取得する場合:

$pin = Pin::all();

次のような配列を取得します。

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) {
    }
  }
}

代わりに Fluent を使用する場合のように:

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

「属性」、「元の」、「関係」 ..インデックスのないプレーンな配列として取得します。

FLuentのようにプレーン配列を返すようにEloquentを使用するにはどうすればよいですか?

4

4 に答える 4

11

とてもシンプルです。

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

またはJSONオブジェクトを送信したい場合は、使用してみてください

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

または、使用するよりもjson出力に変換する配列がある場合

return Response::json(array('name' => 'Batman'));
于 2012-10-07T21:43:09.003 に答える
3

Laravel 4 では、次のことができます。

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

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

データをJson形式で返します

于 2012-11-27T18:21:41.207 に答える
1

Laravelには組み込みto_array()関数があるので、このようなことができます。

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

それが役立つことを願っています:D

于 2012-10-08T10:32:08.810 に答える
0

また

$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 */
}
于 2013-03-21T11:54:33.133 に答える