Laravel-如何在数据透视模型上注册策略类

时间:2020-09-03 15:11:15

标签: php laravel nova

让我们说,其中有一些表称为article和relatedArticles。

Articles是雄辩模型的扩展,而relatedArticles是关键模型。

class AuthServiceProvider extends ServiceProvider
{
    public function boot()
    {
        $classes = [];
        Gate::guessPolicyNamesUsing(function ($modelClass) use(&$classes) {
             $classes[] = $modelClass;
        }
        
        dd($classes);
    }
}

跑步将返回['articles'],但不会返回['articles,'relatedArticles'],因为relatedArticles是关键模型。

因此,relatedArticlesPolicy将不会被注册,因此您不能在其上编写策略。

根据此git问题,您必须建立一个hadManyThrough关系。 https://github.com/laravel/nova-issues/issues/321#issuecomment-431601952

我也在使用Nova,并且它们不支持hasManyThrough关系。因此,我要么陷入没有政策的关系,要么陷入Nova不能使用的关系。 https://github.com/laravel/nova-issues/issues/585#issuecomment-670001475

是否可以在AuthServiceProvider的枢纽模型上注册策略类?

0 个答案:

没有答案