【问题标题】:laravel Search formlaravel 搜索表单
【发布时间】:2020-05-20 14:00:06
【问题描述】:

我现在正在学习搜索,它使用 get 方法作为它的形式。所以,我尝试将方法更改为post,但是当我尝试时,它显示页面已过期。谁能告诉我为什么?这是我的代码。

Master.blade.php

<form class="form-inline my-2 my-lg-0" method="post" action="/main/successlogin">
      <input name="cari" class="form-control mr-sm-2" type="search" placeholder="Search" aria-label="Search">
      <button class="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button>
</form>

web.php

Route::post('/main/successlogin', 'MainController@successlogin');

MainController.php

function successlogin(Request $request){
    if($request->has('cari')){
        $data_barang=\App\barang::where('namaBarang','LIKE','%'.$request->cari.'%')->get();
    }
    else{
        $data_barang = \App\barang::all();
    }
    return view('halamanUtama', ['data_barang' => $data_barang]);
}

【问题讨论】:

  • 您必须在表单中添加csrf token field
  • 我可以推荐laravelcollective/html 包,它有一个Form::open(...) 自动处理csrf 令牌的方法。还有许多其他方便的功能,例如输入预填充

标签: laravel search


【解决方案1】:

您需要将 CSRF 令牌添加到您的表单中 - 您可以为此使用 @csrf 标签,您可以在 documentation 中阅读更多内容

<form class="form-inline my-2 my-lg-0" method="post" action="/main/successlogin">
      @csrf
      <input name="cari" class="form-control mr-sm-2" type="search" placeholder="Search" aria-label="Search">
      <button class="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button>
</form>

【讨论】:

  • 任何时候,请不要忘记接受答案,这样它也可以帮助其他人?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-01-14
  • 1970-01-01
  • 1970-01-01
  • 2022-01-04
  • 2020-02-10
  • 1970-01-01
  • 2017-11-06
相关资源
最近更新 更多