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"}
и так по какому-то имени нет номера.
Проблема в том, что у вас нет связанных 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>
Других решений пока нет …