使用Laravel和雄辩的ORM,我想创建属于特定用户的所有帖子和相应注释的数组或对象(已登录的).结果将与Response :: eloquent()一起使用;返回
JSON.
基本上是伪代码:
All Posts by user ::with('comments').
要么
Posts by Auth::user()->id ::with('comments').
我根据用户的表,注释表和帖子表,通常使用我的数据库设置.注释表具有一个post_id,并且posts表具有一个user_id.
没有Laravel的漫长的做法就是这样:
SELECT * FROM posts WHERE user_id = 'user_id' foreach($result as $post) { SELECT * FROM comments WHERE posts_id = $post->id foreach($query as $comment) { $result[$i]->comments[$n] = $comment } }
但是我想用Laravel的雄辩的ORM来完成它.
看起来你甚至不需要嵌套的加载,你只需要修改与返回的查询,所以:
$posts = Post::with('comments')->where('user_id','=',1)->get();
您可以在Eloquent系统中菊花链链接大多数方法,通常它们只是返回一个Fluent查询对象.
(我没有测试过,但我相当肯定会工作,而且,你不能在:: all()上执行它,因为调用 – > get(),你必须挖掘源代码找到这个,我不认为这个雄辩的文档提到这是正在做的.)
另外Eager Loading Documentation还包含了嵌套的加载,所以你可以加载所有的用户,他们的帖子和评论:
You may even eager load nested relationships. For example,let’s
assume our Author model has a “contacts” relationship. We can eager
load both of the relationships from our Book model like so:
$books = Book::with(array('author','author.contacts'))->get();
原文地址:https://www.jb51.cc/laravel/131266.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。