Laravel 3款车型之间的关系?

时间:2018-04-13 09:41:07

标签: laravel eloquent

我需要在Laravel中定义3个模型之间的关系。 我有用户,文档和权限。用户可以拥有多个文档,并且可以将文档分配给许多用户。这是一个简单的部分,一个多对多的关系。

现在我有一个Permission表,包含两个条目,读写。 我无法理解它,如何基于用户为文档分配读或写权限。

例如: User1可以编写Document1并读取Document2 User2可以写两个 User3只能读取两个

1 个答案:

答案 0 :(得分:2)

App\User::find(1)->documents()->save($document, 
                ['read' => true, 'write' => false]);

此外,在您的模型中,添加您的关系:

->withPivot('document_id', 'user_id', 'read', 'write');

这也是你桌子上的字段。

而不是使用

foreach ($user->documents as $document) {
    echo 'Can read: ' . $document->pivot->read;
}

为了便于阅读,您可以使用以下方法为枢轴添加名称:

->withPivot(...)->as('permissions')

然后使用以下方式访问枢轴:

foreach ($user->documents as $document) {
    echo 'Can read: ' . $document->permissions->read;
}

感谢bogdan对于透视名称的评论。