渴望加载与Laravel 4中的多对多关系

mr2_kasper

我正在尝试在laravel 4中建立消息传递系统。我有两个类Conversation和User,它们之间存在多对多关系。我正在输出已登录用户的对话列表以及对话中的用户列表:

@foreach(User::find(Auth::user()->id)->conversations as $conversation) 

    {{ $conversation->id }}

    @foreach($conversation->users as $user) 
        {{ $user->name }}
    @endforeach   

    <br><br>

@endforeach

它正在工作,并输出对话ID,后跟参与该对话的用户名。我的问题是这样运行大量查询,我无法弄清楚如何使用紧急加载,而仍然只能选择已登录的用户对话。任何帮助将非常感激!

编辑:

使用以下代码,我得到正确的输出,但仍然查询数据库很多:

<?php $user = User::with('conversations')->find(Auth::user()->id); ?>

{{ $user->username }}'s conversations<br><br>
@foreach($user->conversations as $conversation) 
    {{ $conversation->id }} 
    @foreach($conversation->users as $user) 
        {{ $user->name }}
    @endforeach
    <br>
@endforeach

我真的很想能够将这一部分@foreach($ conversation-> users as $ user)加载。它输出:

user_1的对话

1个用户_1个用户_2

5个user_1 user_3

幸运索尼

我相信在任何情况下,只有1个用户会话处于活动状态。为什么需要foreach来遍历logged in用户?您的应用程序如何工作?

渴望加载:

$user = User::find(Auth::user()->id);

$conversations = $user::with('conversation')->get();

或@David Barker指出:

User::with('conversation')->find(Auth::user()->id)

对话可能属于许多用户。所以:

$conversation_id = [];

@foreach($user->conversations as $conversation) 
    array_push($conversation_id, $conversation->id);
@endforeach

$conversations_with_users = Conversation::with('user')->whereIn('id', $conversation_id);

现在遍历$ conversations_with_users。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Laravel Eloquent中渴望加载的渴望加载

来自分类Dev

Laravel渴望加载一对多关系

来自分类Dev

Laravel渴望加载-关系查询

来自分类Dev

Laravel渴望加载多态关系

来自分类Dev

Laravel渴望加载多态关系

来自分类Dev

如何渴望从多对多关系中仅加载1个结果Laravel

来自分类Dev

Laravel 4渴望加载约束

来自分类Dev

Laravel中嵌套的渴望加载

来自分类Dev

Laravel 4>渴望加载> orderBy嵌套关系

来自分类Dev

渴望加载Laravel中嵌套的雄辩关系

来自分类Dev

在Laravel 4中渴望加载list()

来自分类Dev

Laravel 4多对多关系

来自分类Dev

Laravel 4.1渴望加载多态关系morphTo

来自分类Dev

渴望在laravel中加载特定模型的关系

来自分类Dev

Laravel Eloquent:渴望加载多个嵌套关系

来自分类Dev

Laravel-限制渴望加载的belongsTo关系

来自分类Dev

渴望在Laravel中加载多个关系

来自分类Dev

Laravel-检查并渴望加载关系模型。

来自分类Dev

Laravel 4渴望通过:: find()加载

来自分类Dev

Laravel中的多对多关系

来自分类Dev

Laravel:如何从渴望的加载中得到结果?

来自分类Dev

渴望在Laravel和Eloquent中加载渴望加载到模型中的关系(受保护的$ with)

来自分类Dev

实体框架-渴望加载两个多对多关系

来自分类Dev

渴望加载与关联实体的多对多关系-实体框架

来自分类Dev

Laravel-关系中的switch语句-渴望加载错误

来自分类Dev

Laravel 4-链接多对多关系

来自分类Dev

Laravel在访问关系属性时忽略渴望的加载关系

来自分类Dev

Laravel渴望根据关系方法的结果加载关系

来自分类Dev

Laravel-渴望加载多态关系的相关模型