请问用 Laravel 如何实现类似 Parse 的 includekey 功能?

oam87 2016-01-26 08:01:55
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();
}
}

请问我这样写合理吗?有大神能给出更好的方法学习下嘛?谢谢!
...全文
463 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

4,251

社区成员

发帖
与我相关
我的任务
社区描述
国内外优秀PHP框架讨论学习
社区管理员
  • Framework
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧