此集合实例hasMany上不存在Property [name]

时间:2018-04-02 18:16:53

标签: php laravel relationship

$users = User::all();
//dd($users);
return view('welcome')->with('users',$users);

我通过$users查看:

@foreach($users as $user)

    <li>{{$user->contact->name}}</li>

    @endforeach

我想使用联系人的姓名属性。当我使用{{$user->contact}}时,我有输出:

[{"id":6,"user_id":1,"name":"Maximillian O'Kon III","created_at":"2018-04-02 16:27:05","updated_at":"2018-04-02 16:27:05"},{"id":9,"user_id":1,"name":"Prof. Raul Runolfsdottir","created_at":"2018-04-02 16:27:05","updated_at":"2018-04-02 16:27:05"},{"id":12,"user_id":1,"name":"Marcos Marquardt","created_at":"2018-04-02 17:48:23","updated_at":"2018-04-02 17:48:23"},{"id":17,"user_id":1,"name":"Malinda Windler","created_at":"2018-04-02 17:48:23","updated_at":"2018-04-02 17:48:23"},{"id":18,"user_id":1,"name":"Gabe Bogisich","created_at":"2018-04-02 17:48:23","updated_at":"2018-04-02 17:48:23"}]..**and so on there are some empty collection** []

这是用户类:

 public function contact()
    {
        return $this->hasMany(Contact::class);
    }

1 个答案:

答案 0 :(得分:0)

使用一对多relationships时,最好使用复数形式,这样您就不会感到困惑,而且您知道它是collections,而不是单个实例。

public function contacts()
{
    return $this->hasMany(Contact::class);
}

要访问联系人姓名:

@foreach ($users as $user)
    @foreach ($user->contacts as $contact)
        <li>{{$contact->name}}</li>
    @endforeach
@endforeach