在json中输出关系的实体

时间:2013-05-22 16:55:22

标签: laravel laravel-3

我有一个与图片实体有一对多关系的设备实体。就像一个设备有很多图片。如何在JSON中输出所有设备属性和图片数组?

当我尝试:

dd(Device::find(1)->pictures);

我得到了一些laravel对象以及一些额外的信息。我试图在某些方面做到这一点,但没有设法得到一个简单的图片对象(或数组数组)的数组

虽然这有效:

foreach (Device::find(1)->pictures as $picture) {
    $data['pictures']['path'] = $picture->path;
}
dd($data['pictures']);

以这种方式形成数组似乎很奇怪

基本上我需要输出json和一对多对象的数组,比如图片和其他一些对象。所以我会得到类似的东西:

["name": "myDevice", "price": "15", "pictures": [...], "another": [...]]

我正在使用laravel 3

1 个答案:

答案 0 :(得分:1)

您使用的是Laravel 3吗?在这种情况下,这应该可以解决问题:

return Response::eloquent(Device::with('pictures')->find(1));

如果您使用的是Response::eloquent,则内容类型也会自动设置为application / json。

编辑:如果您只想返回某些字段,可以使用Response::json(Device::with('pictures')->lists('name', 'id'));返回已经JSONified的值的数组。