使用 Route::resource() 在 laravel 中删除并获取
delete in laravel with get using Route::resource()
我正在尝试使用 GET 而不是 DELETE 在 laravel 中删除,因为我的共享服务器不支持 DELETE 动词。
所以,我用了Jeffrey Way's method
东西在我的routes.php,我用
Route::resource('users', 'UserController');
例如
因此,当我对资源使用 GET 而不是 DELETE 时,系统认为我将使用 show 方法而不是 destroy 方法。
我看到的唯一方法是不使用资源方法来路由,并详细说明我的所有路由,但我不喜欢它,读起来有点沉重。
有没有办法继续使用 resource() 并有自定义的销毁路径?
Tx!
HTML 表单实际上不支持 PUT
、PATCH
或 DELETE
操作;他们只支持 GET
或 POST
请求。
相反,Laravel 欺骗该方法以允许您使用隐藏的 _method
字段来使用这些方法,您可以在 docs.
中阅读该字段
使用 Route::resource
会自动将 DELETE
方法路由到控制器中的 destroy
函数。
如果您正在使用 Form helpers,那么您可以在 Form::open()
中使用以下内容来指定删除方法:
{!! Form::open(['method' => 'DELETE']) !!}
如果你不是,那么你可以像这样简单地将它包含在你的 HTML 表单中 {{ method_field('DELETE') }}
。
如果您不欺骗它并使用 GET
请求,那么 Route::resource
会将其与您控制器中的 show
函数相关联。
使用按钮完成此操作
{!! Form::open(['method' => 'DELETE']) !!}
{!! Form::submit('Delete') !!}
{!! Form::close() !!}
一种选择是将 Route::resource
与 except
参数一起使用,并根据需要自定义例外路由。
示例:
Route::resource('product, 'ProductController', ['except' => ['destroy']]);
Route::get('product/{id}/destroy','ProductController@destroy');
还没有找到更好的解决方案。
我正在尝试使用 GET 而不是 DELETE 在 laravel 中删除,因为我的共享服务器不支持 DELETE 动词。
所以,我用了Jeffrey Way's method
东西在我的routes.php,我用
Route::resource('users', 'UserController');
例如
因此,当我对资源使用 GET 而不是 DELETE 时,系统认为我将使用 show 方法而不是 destroy 方法。
我看到的唯一方法是不使用资源方法来路由,并详细说明我的所有路由,但我不喜欢它,读起来有点沉重。
有没有办法继续使用 resource() 并有自定义的销毁路径?
Tx!
HTML 表单实际上不支持 PUT
、PATCH
或 DELETE
操作;他们只支持 GET
或 POST
请求。
相反,Laravel 欺骗该方法以允许您使用隐藏的 _method
字段来使用这些方法,您可以在 docs.
使用 Route::resource
会自动将 DELETE
方法路由到控制器中的 destroy
函数。
如果您正在使用 Form helpers,那么您可以在 Form::open()
中使用以下内容来指定删除方法:
{!! Form::open(['method' => 'DELETE']) !!}
如果你不是,那么你可以像这样简单地将它包含在你的 HTML 表单中 {{ method_field('DELETE') }}
。
如果您不欺骗它并使用 GET
请求,那么 Route::resource
会将其与您控制器中的 show
函数相关联。
使用按钮完成此操作
{!! Form::open(['method' => 'DELETE']) !!}
{!! Form::submit('Delete') !!}
{!! Form::close() !!}
一种选择是将 Route::resource
与 except
参数一起使用,并根据需要自定义例外路由。
示例:
Route::resource('product, 'ProductController', ['except' => ['destroy']]);
Route::get('product/{id}/destroy','ProductController@destroy');
还没有找到更好的解决方案。