請讓我有3張桌子,我想顯示,但3個表是相關的。Laravel 3張桌子上的雄辯關係
第一張表是GROUPS
,第二張是CONTACTS
,最後一張是PHONE_NUMBERS
。
我正在使用Laravel框架。問題是,我不知道使用的雄辯關係,我想顯示GROUPS
表的內容,而CONTACTS
會顯示在GROUPS
下,而PHONE NUMBERS
會顯示在CONTACTS
下。
請教我如何實現這一目標。 附件是完成後它將如何顯示的圖像。
請讓我有3張桌子,我想顯示,但3個表是相關的。Laravel 3張桌子上的雄辯關係
第一張表是GROUPS
,第二張是CONTACTS
,最後一張是PHONE_NUMBERS
。
我正在使用Laravel框架。問題是,我不知道使用的雄辯關係,我想顯示GROUPS
表的內容,而CONTACTS
會顯示在GROUPS
下,而PHONE NUMBERS
會顯示在CONTACTS
下。
請教我如何實現這一目標。 附件是完成後它將如何顯示的圖像。
每組可以有多個聯繫人,每個聯繫人可以有多個電話號碼,您需要定義一個一對多的羣關係的聯繫和接觸到的電話號碼:
class Group extends Model {
public function contacts() {
return $this->hasMany(Contact::class);
}
}
class Contact extends Model {
public function phoneNumbers() {
return $this->hasMany(PhoneNumber::class);
}
}
隨着關係的定義,你將能夠加載羣體,他們的聯繫人和聯繫人的電話號碼有:
$groups = Group::with(['contacts', 'contacts.phoneNumbers'])->get();
這將給你一個小組的集合。每個組都將包含一組聯繫人聯繫人屬性。每個聯繫人都將在其phoneNumbers屬性中包含電話號碼收集。通過這些集合迭代,你應該能夠得到需要的渲染你所需要的結構,例如數據:
@foreach($groups as $group)
{{ $group->name }}
@foreach ($group->contacts as $contact)
{{ $contact->name }}
@foreach ($contact->phoneNumbers as $number)
{{ $number->number }}
@endforeach
@endforeach
@endforeach
如何與雄辯的數據模型中的所有必要的信息,可以在文檔中找到:https://laravel.com/docs/master/eloquent
非常感謝你@ jedrzej.kurylo –
男人......你應該真的考慮重寫你的問題。如果你不能清楚地表達人類的想法,簡潔明白,恐怕更難以跳到一些代碼或查詢:) –
@JimRaynor描述可能有點複雜,但圖像是非常自我解釋的:)。 – Bogdan
@Bogdan我知道:)在離開評論前我看到了圖片。在進行一些簡單的編輯之後,問題已經至少可讀了。然而,它是由社區編輯的,而不是由提問者編輯的 - 我希望他回顧他的問題並親自嘗試修訂。 –