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)。 –