当前位置: 首页 > 知识库问答 >
问题:

Laravel-模型策略在某些路由不起作用

许沛
2023-03-14

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

应用程序”政策”Customer策略

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

注册策略
应用程序”提供商”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' ); 

奇怪的是:上面的第一个路由-'客户/创建'-不工作,试图访问该页面得到一个403/禁止的代码。但是另外两个——“customers.edit”、“customers.update”——和预期的一样工作!!?!。

共有1个答案

刘高峯
2023-03-14

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

Route::get( 'customers/create', 'CustomerController@create')->name( 'customers.create' )->middleware( 'can:create,App\Customer' );
 类似资料:
  • 我有一个带有一个提交按钮的表单,并在控制器中设置action to destroy方法。相同的代码适用于其他窗体和控制器,但不适用于此窗体和控制器。当我在Chrome中检查我的网页时,表单标签中的操作是错误的。 这是我的表格: 我通过设置\组织\公司控制器中的编辑方法访问此表单: 下面是设置\组织\公司控制器中的销毁方法:

  • 我刚刚开始学习laravel,我正在使用MAMP。我在这个url上有一个表单:http://localhost:8888/laravel-site/my new app/public/ducks但当我提交表单时,它会将我带到此url:http://localhost:8888/ducks不会停留在我期望的地方。 routes.php文件包含以下内容: 在我的生活中。htaccess文件我有这个:

  • 由于以下错误(npm 3.10.10,webpack 3.8.1),我无法使用vue routes get。如何解决这个问题 编译失败。 ./node_modules/babel loader/lib/node_modules/vue loader/lib/selector.js?type=script 我使用简单的网页包 Quotes.vue Quote.vue new-quote.vue Ap

  • 问题内容: 我已经按照教程在我的应用程序中实现了路由 http://docs.angularjs.org/tutorial/step_07 我无法在IE7中使用我的版本,花了一段时间尝试找出我错过/做错的事情后,我注意到该示例不起作用。 http://angular.github.com/angular- phonecat/step-7/app/ 有人知道如何使它工作吗? 问题答案: 好的,我遇到

  • 问题内容: 我是新来的hibernate。我想做的是用来为我的Address类生成一个标识符。我已经为此使用接口。但是,当我使用策略并将其设置为hilo时,它将引发异常。这是我的代码: 我得到以下异常: 我正在使用最新的hibernate模式。我该怎么办? 问题答案: 不再支持Hilo,这应该可以工作

  • 我正在编写一个流程,需要从API中提取JSON数据,并将其提供给另一个要求字段名称完全小写的系统。我试图利用内置的LowerCaseStrategy,但这不起作用。我尝试过的一个例子是: