Php Laravel策略方法参数计数问题
尝试授权某些Php Laravel策略方法参数计数问题,php,laravel,laravel-6,laravel-authorization,Php,Laravel,Laravel 6,Laravel Authorization,尝试授权某些新闻策略时出现以下错误: 函数App\Policies\NewsPolicy::create()的参数太少,在第706行的laravel\framework\src\illumb\Auth\Access\Gate.php中传递了1个参数,预期正好是2个参数 我在命名空间App\Models下有一个News模型,在App\Policies下有一个NewsPolicy 另外,我在我的AuthServiceProvider中有自定义的Gate::guessPolicyNamesUsing(
新闻策略时出现以下错误:
函数App\Policies\NewsPolicy::create()的参数太少,在第706行的laravel\framework\src\illumb\Auth\Access\Gate.php中传递了1个参数,预期正好是2个参数
我在命名空间App\Models
下有一个News
模型,在App\Policies
下有一个NewsPolicy
另外,我在我的AuthServiceProvider
中有自定义的Gate::guessPolicyNamesUsing()
,具有下一个回调:
Gate::guessPolicyNamesUsing(function ($modelClass) {
return ['\\App\\Policies\\' . class_basename($modelClass) . 'Policy'];
});
我发现,出于某种原因,Laravel在illighted\Auth\Access\Gate::callPolicyMethod()
删除了带有模型类名的参数:
但是为什么我的策略不知道他们授权了什么模型呢?好的,问题是viewAny
和create
方法不需要模型类的第二个参数
应该是这样的:
public function create(User $user)
{
//
}
public function create(User $user)
{
//
}