【发布时间】:2019-02-22 21:49:05
【问题描述】:
我想显示已发送或收到消息的用户。
用户模型:
public function messages_sender()
{
return $this->hasMany('App\Message', 'sender_id');
}
public function messages_recipient()
{
return $this->hasMany('App\Message', 'recipient_id');
}
消息控制器
public function index()
{
$users = User::with('messages_recipient', 'messages_sender')->paginate(5);
//return $users;
return view('message.index',compact('users'));
}
消息视图:
{{ $user->messages_recipient['recipient_id'] }}
结果是视图“未定义索引:recipient_id”或当我尝试访问其中任何一个(sender_id、receiver_id)时出现错误。我了解并非所有用户都有消息,正如我在 JSON 格式中看到的那样,所以我使用了:
@if($user->messages_recipient->has('recipient_id'))
{{ $user->messages_recipient['recipient_id'] }}
@endif
并且没有显示错误。
JSON:https://pastebin.com/NFSWMp7r
因为我是 Laravel 的新手,所以我需要一些帮助。在类似的示例中,当我需要获取用户和他们的角色名称(管理员、用户)时,它会起作用。
【问题讨论】:
标签: laravel collections view