【问题标题】:laravel using policy with many to many relationship pivot tablelaravel 使用具有多对多关系数据透视表的策略
【发布时间】:2020-02-23 11:01:12
【问题描述】:

您如何在多对多关系中设置策略,因为它使用数据透视表 ||laravel 版本 6|| 示例:MainTable[公司和用户] 数据透视表[company_user]

以视图策略为例:

 public function view(User $user,Company $company)
{
    return $user->companys()->company_id == $company->id;
}

规则:(只有属于公司的用户才能查看) 目前上面的代码不起作用 我在谷歌或它自己的文档中找不到示例,因为大多数示例是 Post 和 User,它们不包含数据透视表 ..

【问题讨论】:

    标签: laravel policy


    【解决方案1】:

    您可以结合使用pluck()contains() 收集方法。

    public function view(User $user, Company $company)
    {
        return $user->companys->pluck('id')->contains($conpany->id);
    }
    

    采摘:https://laravel.com/docs/6.x/collections#method-pluck

    包含:https://laravel.com/docs/6.x/collections#method-contains

    【讨论】:

    • 它正在工作但是,返回 false: 403 此操作未经授权。对所有人,即使用户是公司的成员,仍然返回 false 。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-07
    • 2023-02-05
    • 1970-01-01
    • 2018-09-23
    • 2019-02-13
    • 1970-01-01
    相关资源
    最近更新 更多