我有一個數據透視表連接(使用自定義的遷移)兩個表抓取所有條目:Laravel,雄辯:從多到許多關係
利息表:
ID | label
Person表:
ID | label
PersonHasInterest表(自定義遷移):
InterestID | PersonID | notes
如何從數據透視表中獲取所有記錄(加入個人和興趣)?我不想獲得一個人或所有有興趣的人的所有興趣,但是數據透視表的所有條目(包含連接)。
我有一個數據透視表連接(使用自定義的遷移)兩個表抓取所有條目:Laravel,雄辯:從多到許多關係
利息表:
ID | label
Person表:
ID | label
PersonHasInterest表(自定義遷移):
InterestID | PersonID | notes
如何從數據透視表中獲取所有記錄(加入個人和興趣)?我不想獲得一個人或所有有興趣的人的所有興趣,但是數據透視表的所有條目(包含連接)。
即使Pivot
擴展Model
,不可能叫上Pivot
-object標準模型的功能。 Issue on Github。
我想出了使用DB-Facade執行SELECT語句,就像這樣:
DB::table('person_has_interest')
->join('interest', 'person_has_interest.interest_id', '=', 'interest.id')
->join('person', 'person_has_interest.person_id', '=', 'person.id')
->get(); // further manipulation like select possible
嘗試這樣定義樞軸模式:
<?php
...
use Illuminate\Database\Eloquent\Relations\Pivot;
...
class PersonHasInterest extends Pivot
{
protected $table = '...'; // table name
}
然後使用它:PersonHasInterest::all();
這是不可能的。你不能用這種方法實例化數據透視表。請參閱https://github.com/laravel/framework/issues/17770 –
定義數據透視表的模型,然後調用'PersonHasInterest ::所有()' –
,但怎麼可以?爲樞軸定義模型? –
與模型相同,您可以指定表格屬性 –