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

发布于 2022-09-02 01:12:19 字数 728 浏览 34 评论 0

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文