Вам нужно hasManyThrough
в стиле Каскад 1-ко-многим-ко-многим.Как у художника есть много альбомов, в которых есть много песен, так что у исполнителя есть много песен в альбомах (Artist-> Albums-> Songs).
В вашем случае:
1- в компании есть одинили несколько контактов, допустим, вы ограничите его до 1 с помощью кодов бизнес-логики
2- Компания имеет много заказов, и заказ принадлежит компании
3- Контакт принадлежитКомпания
Таким образом, вы можете использовать коды:
ОБНОВЛЕНИЕ -----
Как вы указали в комментарии, компания может иметь несколько контактов,затем вы можете определить дополнительное hasMany
отношение к контакту.
в модели компаний
<?php
// Companies model
public function contact()
{
return $this->hasOne('App\Contacts', 'companies_id');
}
public function contacts()
{
return $this->hasMany('App\Contacts', 'companies_id');
}
public function orders()
{
return $this->hasMany('App\Orders', 'company_id');
}
в модели контакта
<?php
// Contacts model
// Keep it singular since it's only one Company
public function company()
{
return $this->belongsTo('App\Companies', 'companies_id');
}
в модели заказа
<?php
// Orders model
// Keep it singular since it's only one Company
public function company()
{
return $this->belongsTo('App\Companies', 'company_id');
}
И, наконец, в режиме Blade
<div class="col-xs-6">
<strong>TO:</strong>
<h4>{{ $orders->company->comp_name }}</h4> //this is ok
<p>{{ $orders->company->comp_address }}</p> //this is ok
<p>{{ $orders->company->contact->cont_name }}</p> //this should be ok
</div>