Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
laravel 6呼叫post路由返回同一页面进行排序表_Laravel_Sorting_Post_Get - Fatal编程技术网

laravel 6呼叫post路由返回同一页面进行排序表

laravel 6呼叫post路由返回同一页面进行排序表,laravel,sorting,post,get,Laravel,Sorting,Post,Get,我正在尝试创建一个用户可以排序的表 我创建了以下两条路线 route::get('/manager', 'Manager\DeadlineController@index')->middleware(['auth', 'auth.manager'])->name('manager.index'); route::post('/manager/{name_id}', 'Manager\DeadlineController@sortByName')->middleware

我正在尝试创建一个用户可以排序的表

我创建了以下两条路线

 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路线:列表

|        | 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>
我错过了什么或做错了什么?任何帮助或提示都将不胜感激。请询问我是否需要提供更多细节

更新 我将视图中的链接更改为带有提交按钮的表单标签,现在它可以工作了

<th scope="col">
   <form action="{{ route('manager.sortByName', $name_id) }}" method="POST">
         @csrf
         <button type="submit">NAAM</button>
    </form>
</th>

@csrf
纳姆

当您单击标签时,它确实收到了请求,因此您需要更改从POST到GET的路线,同时返回视图作为对POST的响应方法也不是一个好主意,最好的解决方案是GET route

我将a标签更改为表单标签,现在它可以工作了。为什么将视图作为对POST方法的响应返回是一个坏主意?只要尝试刷新页面,您就会看到警报,如果您接受再次发送数据,这将导致表单提交两次,因此,如果您有类似于付款或发送邮件的内容,它将在刷新时运行两次。你必须避免这样
<th scope="col">
   <form action="{{ route('manager.sortByName', $name_id) }}" method="POST">
         @csrf
         <button type="submit">NAAM</button>
    </form>
</th>