0

我尝试在laravel中创建表单搜索..当标题文章的标题被搜索..然后标题会出现..我是搜索标题文章表单文章表

这是我的家庭控制器

...
  public function search(Request $request){
      $cari = $request->get('search');
      $Title = Article::where('title', 'LIKE', '%' .$cari . '%')->paginate(10);
      return view('/article/show', $cari);
    }

这是我的header.blade.php

**...
<div class = "col-md-4">
      {!! Form::open(['method'=>'GET', 'url'=>'/article/show', 'role'=>'search']) !!}
      <div class= "input-group custom-search-form">
        <input type="text" class="form-control" name="search" placeholder="Judul..">
        <span class="input-group-btn">
          <span class="input-group-btn">
            <button class="btn-btn-default" type="submit"><i class="fa fa-search"></i>Cari</button>
          </span>
        </span>
        {!! Form::close()!! }
      </div>
    </div>

这是我的路线..

..
Route::get('/article/show', 'HomeController@search');

. 但是当我在搜索表单上输入时..我收到这样的错误

(2/2) QueryException
SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'show AND is_show = TRUE and `articles`.`deleted_at` is null' at line 1 (SQL: select count(*) as aggregate from `articles` where category_id=show AND is_show = TRUE and `articles`.`deleted_at` is null)

.

请告诉我哪部分错了谢谢...

4

3 回答 3

0

您将 POST 请求作为 GET 发送。将 GET 切换为 POST,或者在 URL 中包含搜索词并删除搜索(Request $request)函数的 Request $request 部分,因为 GET 不会提供 Request 的实例。如果你走那条路,就让它 search($terms) 代替。不过,我个人会切换到 POST 。

IE:

Route::post('/article/show', 'HomeController@search');

{!! Form::open(['method'=>'POST', 'url'=>'/arti...
于 2018-03-16T14:13:47.773 回答
0

检查您的表名,或试试这个

      public function search(Request $request)
      {
         $cari = $request->get('search');
         $data['result']= DB::table('articles')->WHERE('title', 'LIKE', '%' .$cari . '%')->paginate(10);
         return view('/article/show', $data);
      }

你的表格

       <form class="navbar-form navbar-left" method="GET" action="{{url('search')}}">
        <div class="input-group">
          <input type="text" class="form-control" placeholder="Search" name="search">
            <button class="btn btn-default" type="submit">
              <i class="fa fa-search"></i>
            </button>
        </div>
      </form>
于 2018-03-19T08:31:00.497 回答
0

在您的表单中添加

{{ csrf_token() }}

此外,您还需要检查“搜索”是否有值,因此将其包裹在if ($request->search)

此外,看起来您可能在页面上的其他地方有一个 SQL 错误,这是导致此问题的原因。

于 2018-03-16T14:21:08.550 回答