2016-10-10 37 views
0

私は検索のためにForm(Laravel 5.2)を持っています。テーブルは1つしかなく、データが表示されます。私がlastNameで検索した場合、私はそれが姓を持つすべての人を表示したいと思います。メーカーで検索すると、そのメーカーが製造したすべてのPCが表示されます。私は基本的にデータベースの各列を検索可能にしようとしています。Laravelの検索結果が正しく表示されない

<!DOCTYPE html> 
<html> 
    <head> 
    <meta charset="utf-8"> 
    <title>Inventory</title> 
    <link rel="stylesheet" href="/css/libs.css"> 
    <link rel="stylesheet" href="/css/app.css"> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> 
    </head> 
    <body> 

    <nav class="navbar navbar-inverse navbar-fixed-top"> 
<div class="container-fluid"> 
    <div class="navbar-header"> 
    <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar"> 
     <span class="sr-only">Toggle navigation</span> 
     <span class="icon-bar"></span> 
     <span class="icon-bar"></span> 
     <span class="icon-bar"></span> 
    </button> 
    <a class="navbar-brand" href="http://inventory.app:8000/computers/create" Inventory</a> 
    </div> 
    <div id="navbar" class="navbar-collapse collapse"> 
    <ul class="nav navbar-nav navbar-right"> 
     <li> 
      {{ Form::open(['method' => 'GET', 'url'=>'computers/search']) }} 
      {{ Form::input('search', 'q', null, ['placeholder' => 'Search...']) }} 
      {{ Form::close() }} 
     </li> 
     <li><a href="http://inventory.app:8000/computers/create">Update Inventory</a></li> 
     <li><a href="#">Logout</a></li> 
    </ul> 

    </div> 
</div> 
</nav> 

私は自分のルーティングにルートリソースを使用しています。私の検索ルートは

です。Route :: get( 'computers/search'、 'InventoriesController @ search');

マイ検索コントローラー

public function search() 

     { 
      $search = \Request::get('search'); //<-- we use global request to get the param of URI 

//   $search = Input::get('search'); 

      $inventories = Inventory::where('lastName','LIKE','%'.$search.'%') 
       -> orwhere('firstName', 'LIKE','%'.$search.'%') 
       -> orwhere('department', 'LIKE','%'.$search.'%') 
       -> orwhere('building', 'LIKE','%'.$search.'%') 
       -> orwhere('room', 'LIKE','%'.$search.'%') 
       -> orwhere('manufacturer', 'LIKE','%'.$search.'%') 
       -> orwhere('device', 'LIKE','%'.$search.'%') 
       -> orwhere('model', 'LIKE','%'.$search.'%') 
       -> orwhere('tag', 'LIKE','%'.$search.'%') 
       -> orwhere('macAddress', 'LIKE','%'.$search.'%') 
       -> orwhere('status', 'LIKE','%'.$search.'%') 
       -> orwhere('comments', 'LIKE','%'.$search.'%') 
       ->get($search); 




      return view('computers.search',compact('inventories')); 
     } 

を以下のようである私は(「検索」)ORDERBYをやって試してみましたが、それは何もしませんでした。私のテーブルには、単に表示されますが、URLは、例えば http://inventory.app:8000/computers/search?q=Dell

答えて

0

を変更するので、それはあなたのURLに示されているように、あなたが探している変数がq、ないsearchである検索ルートにリダイレクトしません。だからではなく、あなたのリクエストでこれを取得する:

$search = \Request::get('q'); 

あなたが探しているものを、カラム最も可能性が高いではありませんので、ごget()呼び出しでそれを使用しないでください。ただ、すべての列、またはあなたが

->get(); 

または

->get(['lastName','firstName','department',...]); 
+0

をしたいだけのものは、あなたにAynberをありがとうございます。それがトリックでした。私の一部にばかげたミス! – Afonte

関連する問題