Laravel识别集合实例密钥

时间:2018-02-09 17:22:01

标签: php laravel laravel-5 laravel-blade

我已经建立了一对多关系,我想检索许多结果并将其显示在我的刀片模板上。我目前收到以下错误Property [job_title] does not exist on this collection instance.

我认为这是因为我试图获得许多结果,尽管它只有一个集合。我的问题是我怎么知道关键是循环以回应我的数据,例如 @foreach ($WhatHere? as something)

这是我的代码 -

关系

//Client model
public function contact() {
   return $this->hasMany(Contact::class, 'client_id', 'id');
}

//Contct model
public function client() {
    return $this->hasOne(Client::class, 'id', 'client_id');
}

控制器查询

public function show(Client $client, $id)
{
    $client = Client::where('id', $id)->firstOrFail();

    return view('clients.single', compact('client'));
}

刀片

{{$client->contact->job_title}}

1 个答案:

答案 0 :(得分:3)

由于它是一对多的关系,您需要迭代联系人:

@foreach ($client->contact as $contact)
    {{ $contact->job_title}}
@endforeach

或者您只能显示第一个联系人:

{{ $client->contact->first()->job_title }}