请问用 Laravel 如何实现类似 Parse 的 includekey 功能?
Parse提供了一个数据查询条件 includekey,这个功能简单的来讲就是如果一条数据有关联数据,那么如果不添加这个查询条件,那么关联的数据不会一起查询了然后传过来。举个简单的例子,在Parse里面:
如果数据post(帖子),有user(发帖人)字段关联的是user(用户)数据。如果获得了一条帖子的数据,想要知道发帖人的姓名,要是在查询的时候不添加includekey条件,帖子关联的用户信息是不随着数据一起发送的,必须读取一次发帖人数据才能获得
这样的查询结构对App提供json数据很灵活,请问如果想自己用laravel实现这样的数据传输结构,应该用什么样的逻辑?还是Eloquent本身就提供了这样灵活的关联数据体系?
我之前的实现都是在model里面通过attribute属性添加一个自定义的查询来为json提供关联数据。因为laravle的BelongsTo对json没用。比如我在post里面又个user_id字段保存的用户id号,那么我想获得用户数据,那么post的model我是这样写的:
class post extends Eloquent{
protected $appends=['user];
public function getuserAttribute(){
return User::where('id','=',$this->user_id)->first();
}
}
请问我这样写合理吗?有大神能给出更好的方法学习下嘛?谢谢!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论