我正在尝试创建一个用户可以排序的表
我创建了以下两条路线
route::get('/manager', 'Manager\DeadlineController@index')->middleware(['auth', 'auth.manager'])->name('manager.index');
route::post('/manager/{name_id}', 'Manager\DeadlineController@sortByName')->middleware(['auth', 'auth.manager'])->name('manager.sortByName');
来自我的php artisan route:list
| | GET|HEAD | manager | manager.index | App\Http\Controllers\Manager\DeadlineController@index | web,auth,auth.manager |
| | POST | manager/{name_id} | manager.sortByName | App\Http\Controllers\Manager\DeadlineController@sortByName | web,auth,auth.manager |
并如下设置我的控制器
public function index()
{
return view('deadline.index')
->with([
'modules' => Module::all(),
'name_id' => 0
]);
}
public function sortByName($name_id){
if($name_id == 0){
$sortedModule = Module::orderBy('name', 'DESC')->get();
}
else{
$sortedModule = Module::orderBy('name', 'ASC')->get();
}
return view('deadline.index')
->with([
'modules' => $sortedModule,
'name_id' => 1
]);
}
我认为我使用以下链接进行排序
<th scope="col"><a href="{{ route('manager.sortByName', $name_id) }}">NAME</a></th>
但是当我在视图中使用此链接时,由于出现以下错误,我以某种方式重定向到我的GET路由
The GET method is not supported for this route. Supported methods: POST.
我缺少什么或做错了什么?任何帮助或提示将不胜感激。请询问我是否需要提供更多详细信息
我将视图中的链接更改为带有提交按钮的表单标签,现在可以使用
<th scope="col">
<form action="{{ route('manager.sortByName', $name_id) }}" method="POST">
@csrf
<button type="submit">NAAM</button>
</form>
</th>
[当您单击<a>
标记时它会执行GET请求,因此您需要将路径从POST更改为GET,同时返回视图作为对post方法的响应不是一个好主意,最好的解决方法是GET route