Laravel-某些路径中的模型策略不起作用

问题描述 投票:0回答:1

在修订工作中-Laravel 5.8-我面临一种奇怪的行为:

app»政策»CustomerPolicy

public function create(User $user )
{
    dd($user);  //  for debugging purposes          
}
... 
public function update(User $user, Customer $customer)
{
    dd($customer);  //  for debugging purposes      
}
...

注册策略app»提供者»AuthServiceProvider

protected $policies = [
    Customer::class => CustomerPolicy::class,
    // TRIED ALSO:   'App\Customer' => 'App\Policies\CustomerPolicy',
];

路线»网络

Route::get( 'customers/create', 'CustomerController@create')->name( 'customers.create' )->middleware( 'can:create,customer' );
...
Route::get( 'customers/{customer}/edit', 'CustomerController@edit' )->name( 'customers.edit' )->middleware( 'can:update,customer' );   
Route::patch( 'customers/{customer}', 'CustomerController@update')->name( 'customers.update' )->middleware( 'can:update,customer' ); 

奇怪的是:上面的第一个路线-'customers / create'-不起作用,尝试访问该页面会得到403 /禁止代码。但是其他两个-'customers.edit','customers.update'-可以按预期运行!!!!

laravel-5 routes laravel-middleware policies
1个回答
0
投票

尽管我做到了,但是我仍然想知道为什么为什么不能使用简化的类名。

Route::get( 'customers/create', 'CustomerController@create')->name( 'customers.create' )->middleware( 'can:create,App\Customer' );
© www.soinside.com 2019 - 2024. All rights reserved.