在laravel routes.php
文件中,我有以下代码:
// User Resourceful Routing
Route::resource('user','UserController');
默认情况下,delete
路由转到show
UserController
方法。为了克服这个问题,我在laravel routes.php
中写了这条路线:
// Delete Users Route
Route::get('user/{user}/{flag}', ['uses' => 'UserController@destroy', 'as'=>'user.destroy'])->before('permission:user_delete');
仍然适用于我,但有时(10次中有2次)它采用show
方法UserController
代替destroy
方法。
// Destroy method
public function destroy($id,$flag='normal'){
}
非常感谢您的建议。
答案 0 :(得分:2)
您应该使用'delete'方法而不是get。
你可以像这样在laravel中使用。
{!! Form::open(['action' => ['UserController@destroy', $user->id], 'method' => 'delete']) !!}
{!! Form::submit('Delete User') !!}
{!! Form::close() !!}
如果您使用的是ajax,可以这样使用。
$.ajax({
type: "DELETE",
url: 'users/' + user_id,
success: function(affectedRows) {
}
});
如果你不想使用laravel的默认destroy方法,那么你可以使用delete_user方法和post post。
答案 1 :(得分:0)
显式定义你的路由而不是使用资源,除了它们是3或4之外。
然而,我会先通过php artisan route:list
调试当前路由并检查您的端点。可能你在发送请求时遗漏了某个参数。