0
它是關於「庫」和「用戶」的,但它可以被看作是更通用的情況。獲取模型的所有關係:混合hasMany和belongsToMany
- 我有一個
Library
模型與libraries
表關聯。 libraries
表有creator_id
這是對users
表的參考。- 還有一個數據透視表
library_user
爲所有的用戶誰可以見一個庫。public function librariesAssociatedViaPivot() { return $this->belongsToMany(Library::class); }
我還可以創建一個函數來獲取通過創建庫:
這樣我就可以通過創建一個方法User
模型這樣獲得通過樞軸表關聯到用戶的所有庫User
:
public function librariesCreatedByUser()
{
return $this->hasMany(Library::class);
}
,但我要的是User
創造庫+天秤座ries User
可以看到。換句話說,我想混的兩種功能,並能夠通過調用看到了User
所有庫:
$users->libraries
我應該把這個庫的方法?
public function libraries()
{
// ... ?
}
備註:我不想在數據透視表中添加創建者。
好的謝謝。儘管如此,我不能使用'$ users-> libraries',並且不能使用查詢生成器的流暢API(類似於'$ users-> libraries() - > orderBy('id')') –
如果你想用它作爲'$ user-> libraries',你可以命名函數'getLibrariesAttribute()'。見[這裏](https://laravel.com/docs/5.4/eloquent-mutators#defining-an-accessor)。 您可以使用所有'Collection'方法,參見[這裏](https://laravel.com/docs/5.4/collections#available-methods)。 – Aegir
這是因爲它正在返回一個集合。使用收集方法,而不是像['sortBy'](https://laravel.com/docs/5.4/eloquent-collections#available-methods)。 –