Попытка получить свойство не-объекта, не может получить доступ к свойствам phoneNumber

Route::get('/', function (){

$contacts = Contact::all();
//dd($contacts);

return view('welcome')->with('contacts',$contacts);

});

С маршрута я передаю $ контакты на вид

@foreach($contacts as  $contact)

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

<small>by {{$contact->phoneNumber->number}}</small>

</li>

@endforeach

но когда я, что для доступа к номеру phoneNumber, это мой класс:

public function phoneNumber()
{
return $this->hasOne(PhoneNumber::class);
}

я получаю ошибку Попытка получить свойство необъекта ???

Также, когда я положил так:

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

<small>by {{$contact->phoneNumber}}</small>

</li>

я получил:
Колтон Килбэк IV {"id":20,"contact_id":1,"number":"+1-936-288-3493","created_at":"2018-04-01 20:14:16","updated_at":"2018-04-01 20:14:16"}

Шон Штрайх ДВМ

Доктор Рут Тиль III

Лаверн Мерц {"id":11,"contact_id":4,"number":"(769) 844-4643 x59321","created_at":"2018-04-01 20:14:16","updated_at":"2018-04-01 20:14:16"}

и так по какому-то имени нет номера.

0

Решение

Проблема в том, что у вас нет связанных PhoneNumber для тебя Contacts с именами Dr. Ruthe Thiel III а также Shaun Streich DVM,

Вы можете использовать это в своем шаблоне лезвия вместо:

<li> {{$contact->name}}
<small>by {{$contact->phoneNumber->number ?? ''}}</small>
</li>

который просто пропустит номер телефона, если ни один не доступен.


Редактировать: если вы хотите, чтобы вывод был более приятным, вы также можете использовать что-то вроде этого:

<li> {{$contact->name}}
@if(count($contact->phoneNumber))
<small>by {{$contact->phoneNumber->number}}</small>
@else
<small>has no known phone number</small>
@endif
</li>
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]