我正在Laravel上编写REST API,并且正在利用多态关系。捆绑了如此多的资源images
。创建响应时,请使用如下所示的紧急加载:
return User::with('image')->find($id);
我得到这样的东西:
{
id: 27,
image: {
id: 340,
url: "https://amazonbucket.com/2lBqWzDme.jpg",
created_at: "2015-01-28 17:21:17",
updated_at: "2015-01-28 18:28:42",
}
}
相反,我希望它是自动输出只是url
为string
这样的,所以它是在前端更容易:
{
id: 27,
image: "https://amazonbucket.com/2lBqWzDme.jpg"
}
我尝试使用该Image::toJson()
方法,但没有成功。我可以使用该User::toJson()
方法,但必须在使用的所有现有/即将使用的实例上使用该方法images
。有想法吗?
通常情况下,我发现了一种更好的,侵入性更小的方法来寻找其他东西:
只需将$appends
protected属性添加到模型中并设置getImageAttribute()
方法即可。
protected $appends = ['image'];
function getImageAttribute() {
return $this->images()->first()->url;
}
检查http://laravel.com/docs/4.2/eloquent#converting-to-arrays-or-json的底部。
它就像魅力!
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句