laravel对很多人很有帮助

时间:2016-03-04 14:48:30

标签: php orm eloquent many-to-many has-many-through

我正在构建一个应用程序,其中包含用户和角色之间的多对多关系以及角色和权限之间的多对多关系。 我想获得具有hasManyThrough的用户的权限,但它不起作用。这种关系需要角色表中的user_id,但由于它们是多对多,所以当然没有。 谁有修复?

2 个答案:

答案 0 :(得分:0)

无法实现多对多关系。

另一个帖子已经详细解答了这个问题: HasManyThrough with one-to-many relationship

您还可以参考:http://laravel-tricks.com/tricks/i-has-many-through-relation-laravel-the-missed-shortcut

答案 1 :(得分:0)

有一个Laravel 5.5 Composer软件包,可以执行多级关系(深层)

包装: https://github.com/staudenmeir/eloquent-has-many-deep

示例:

User→属于许多→Role→属于许多→Permission

class User extends Model
{
    use \Staudenmeir\EloquentHasManyDeep\HasRelationships;

    public function permissions()
    {
        return $this->hasManyDeep(
            'App\Permission',
            ['role_user', 'App\Role', 'permission_role'], // Pivot tables/models starting from the Parent, which is the User
        );
    }
}

例如需要定义外键的示例:

https://github.com/staudenmeir/eloquent-has-many-deep/issues/7#issuecomment-431477943

相关问题