php – 如何在Laravel 5.6中查看Has One关系

我有一种关系,用户有很多电子邮件,一封电子邮件属于一个用户.我在我的消息模型中定义它:

public function users() {
    return $this->belongsTo('App\User','sender_id','id');
}

这是我的控制器:

 $sender_name = Message::with('users')->get();
 return view('admin.message.read',compact('message','sender_name'));

在我看来,我这样做:

 @foreach($sender_name as $sender_names)
  @php(
  dd($sender_name)
  )
    {{$sender_name->name}}
 @endforeach

所以,这里有两个问题:

>如何检索我在视图中定义的关系?目前,我收到一个错误,该属性在收集时不存在!
>我是否需要在用户模型中定义相反的关系? :

    public function messages() {
        $this->hasOne('App\Message','id','sender_id');
    }

以下是视图周围的代码:

<div class="media-body">
    <h6 class="media-heading">{{$message->title}}</h6>
    <!-- sender name of Email-->
    <div class="letter-icon-title text-semibold">
        @foreach($sender_name as $sender_names)
            {{$sender_names->users->name}}
        @endforeach
    <!-- sender name of Email-->

    <!-- sender Email-->
        <a href="#">jira@diakultd.atlassian.net</a>
    </div>
    <!-- sender name of Email-->
</div>
<!-- body of Email-->
<table width="600" border="0" cellpadding="0" cellspacing="0" align="center">
    <tr>
        <td valign="middle" align="center" style="font-size: 40px; color: #ffffff; line-height: 50px; font-weight: 300;">   
        </td>
    </tr>
</table>
<!-- /title -->

解决方法:

您想要获得添加此消息的用户.因此,您通过其模型获取消息并通过关系将用户添加到其中,这就是您需要在消息模型中定义消息的原因.

要在视图中使用它,您可以使用它

@foreach($sender_name as $sender_names)
    {{$sender_names->users->name}}
@endforeach

要研究关系Laravel有一个很好的文档https://laravel.com/docs/5.7/eloquent-relationships

上一篇:php – L5.6 – 数据透视表的关系


下一篇:正确的数据结构,用于包含形状和它们之间的空间关系