路由不起作用,应该将@csrf
和@method('DELETE')
放在哪里?因为它不会删除用户。在问题发生之前,@csrf
和@method('DELETE')
处于刀片视图中。但是,当我将@csrf
和@method('DELETE')
分别返回时,会显示错误。
$employees = DB::table('users')->leftjoin('roles', 'users.role_id', '=', 'roles.id')->leftjoin('supervisors', 'users.manager_id', '=', 'supervisors.id')
->select(['users.id','users.name','users.department','users.email','users.leaves_available','roles.name_role','supervisors.name_supervisor']);
return Datatables::of($employees)
->addColumn('action', function ($employees) {
return '<form action="'.route('employee.destroy', $employees->id).'" method="post">
<button type:"submit" class="btn btn-sm btn-danger">Delete</button>
</form>
</div>
</div>
</div>
</div>';
})->make(true);
以我使用route('employee.destroy',$ employee-> id)的形式,则参数将为http://localhost:8000/employee/1,我希望用户被删除。
EmployeeController.php
public function destroy($id)
{
DB::table('users')->delete($id);
return redirect()->route('home')
->with('success','Employee have been deleted');
}
这是我的web.php
Route::get('employee/{id}', 'EmployeeController@destroy');
我希望destroy函数将运行并重定向回首页。但是我得到的是:
此路由不支持POST方法。支持的方法: GET,HEAD,PUT,PATCH,DELETE。
答案 0 :(得分:0)
将路线从获取更改为发布。像这样
Route::post('employee/{id}', 'EmployeeController@destroy');
因为,您在表单中使用post
方法,但是route
可以使用。两者必须相同。