Php Laravel-如何在pivot模型上注册策略类

Php Laravel-如何在pivot模型上注册策略类,php,laravel,laravel-nova,Php,Laravel,Laravel Nova,让我们假设有称为articles和relatedArticles的表 Articles是雄辩模型的扩展,relatedArticles是轴心模型 class AuthServiceProvider extends ServiceProvider { public function boot() { $classes = []; Gate::guessPolicyNamesUsing(function ($modelClass) use(&$

让我们假设有称为articles和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是一个透视模型

class AuthServiceProvider extends ServiceProvider
{
    public function boot()
    {
        $classes = [];
        Gate::guessPolicyNamesUsing(function ($modelClass) use(&$classes) {
             $classes[] = $modelClass;
        }
        
        dd($classes);
    }
}
因此,relatedArticlesPolicy将不会注册,因此您无法在其上编写策略

根据这个git问题,您必须建立一个hasManyThrough关系。

我也在使用Nova,他们不支持hasManyThrough关系。因此,我要么被困在没有政策的关系中,要么被困在Nova不起作用的关系中。

是否有方法在AuthServiceProvider中的透视模型上注册策略类