【问题标题】:Laravel - model policy in some routes not workingLaravel - 某些路线中的模型策略不起作用
【发布时间】:2020-10-01 03:40:01
【问题描述】:

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

应用 » 政策 » CustomerPolicy

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

注册策略
app » Providers » 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】:

    我让它工作了,但我仍然想知道为什么不使用简化的类名。

    Route::get( 'customers/create', 'CustomerController@create')->name( 'customers.create' )->middleware( 'can:create,App\Customer' );
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-02-20
      • 1970-01-01
      • 2018-06-26
      • 2017-10-02
      • 2013-05-03
      • 2014-09-08
      相关资源
      最近更新 更多