如何进行Laravel 5数据库搜索,但如果页面已加载而未进行搜索,则返回所有内容

时间:2016-04-25 22:08:59

标签: php laravel laravel-5.2

我希望用搜索栏创建一个客户页面。如果未进行任何搜索,则会返回所有。下面的代码显示了我的控制器中的内容。

public function index(Request $request)
     {
          if(($term = $request->get('term'))){
              $customers = customers::where('name', 'like', '%' .$term.'%'); 
          }
            else{
              $customers = customers::all();  
            }     
         return view ("customers.index")->with('customers',$customers);

}

全部在加载时返回,但在搜索时,视图中的表格中不显示任何内容。 没有错误,表单传递数据,它只是在搜索后不加载视图中的数据。

以下是视图的代码。

<tbody>

                @foreach ($customers as $customer)

                    <tr>
                        <th>{{$customer->id}}</th>
                        <td>{{$customer->business}}</td>
                        <td>{{$customer->name}}</td>
                        <td><a href="{{ route ('customers.show', $customer->id)}}" class="btn btn-default">View</a></td>
                    </tr>
                @endforeach
            </tbody>    

感谢。

1 个答案:

答案 0 :(得分:3)

您在搜索结束时缺少get()方法。它应该是:

$customers = customers::where('name', 'like', '%' .$term.'%')->get();

根据结果返回collection