让我们说,其中有一些表称为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的枢纽模型上注册策略类?