【问题标题】:After submitting the search form, it redirects to a blank page提交搜索表单后,它重定向到一个空白页面
【发布时间】:2020-09-10 04:41:17
【问题描述】:

我在“users.index”视图中有一个多列搜索表单。形式如下:

<form method="get" action="{{route('search')}}">
   <input autocomplete="off" type="text" name="name">
   <input autocomplete="off" type="text" name="role">
   <select name="status">
      <option disabled selected>--</option>
      <option value="0">inactive</option>
      <option value="1">active</option>
   </select>
   <button type="submit">search</button>
</form>

路线是这样的:

Route::get('/admin/users/search', 'Admin\Search\SearchUsersController@search')->name('search');

但是无论我在控制器的搜索功能中写什么,它都没有返回任何内容并将我重定向到一个空白页面! 让我们想象一下控制器是这样的:

class SearchUsersController extends Controller
{
    public function search(Request $request)
    {
        dd($request->all());
    }
}

我想知道为什么会发生这样的事情。当我将表单的方法更改为 Post 并确定两条不同的路线时,问题就解决了,但它是一个搜索表单,从逻辑上讲,应该获取该方法。

【问题讨论】:

  • 您还有其他同名路线,例如search 吗?因为你的代码看起来不错。
  • 不,我没有。我添加到 web.php 的唯一其他路由是 Route::resource('admin/users','Admin\UserController');
  • 将同一控制器的新路由器放在资源路由上方。

标签: laravel controller routes laravel-7 search-form


【解决方案1】:

最终我找到了解决方案。如果你的项目的 web.php 文件中有资源路由,你应该在 resources 之前引入 new routes

【讨论】:

    【解决方案2】:

    您需要在表单中使用csrf_field()&lt;input type="hidden" name="_token" value="'.csrf_token().'"&gt;

    【讨论】:

      猜你喜欢
      • 2017-06-26
      • 1970-01-01
      • 1970-01-01
      • 2013-06-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多