双11狂欢大促

盲盒赢 定制羽绒服

开启惊喜盲盒,抽取你的专属好礼

— 惊喜奖品抢先看 —

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

oam87 oam87 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
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();
}
}

请问我这样写合理吗?有大神能给出更好的方法学习下嘛?谢谢!
...全文
评论
收藏 已收藏
分享
返回顶部
oam87
Framework 4,250 成员 4,522 内容