2016-05-30 24 views
0

我有這個視圖來搜索姓名或電話號碼。laravel 5中的建築物搜索功能

<form method="POST" action="{{url('/telephone/search')}}"> 
{!! csrf_field() !!} 
<input type="text" name="search" placeholder="Name or Telephone no."> 
<input type="submit" class="btn-btn-default" value="search"> 

路由重定向到該控制器:

public function search(Request $request) 
    { 
     $name=$request->get('search'); 
     $search=telephone::where('name','like',$name) 
         ->orWhere('Name','like',%$name) 
         ->orWhere('Name','like',$name%); 
          ->paginate(5); 

     return view('telephone.searchview',['search'=>$search]); 
} 

然後應該表明這樣的觀點:

<thead style='background-color:silver'><tr><td>S.N.</td><td>Name</td><td>Telephone No.</td><td>Mobile No.</td><td>Options</td></tr></thead> 
@if($search==NULL) 
No Results! 
@else  
@foreach ($search as $li) 
    <tr><td></td><td>{{$li->Name}}</td><td>{{$li->telephone}}</td><td>{{$li->mobile}}</td> 
    <td>here</td></tr></table> 
    @endforeach 
    {!! $search->render() !!} 
@endif 

得到了錯誤的orwhere語法,也沒有結果沒有顯示。

回答

0

這可能是存檔這樣也許你在你的表有多個列

$search = telephone::where('name', 'LIKE', '%$name%')->get(); 
+0

仍然問題如果沒有結果匹配.'@if($ search == NULL)沒有結果! @else' – Steve

-1

我認爲這個問題是在你的語法,這應該是

$search=telephone::where('name','like',$name) 
         ->orWhere('Name','like', "%$name") 
         ->orWhere('Name','like', "$name%"); 
         ->paginate(5); 

或者更清晰,

->orWhere('Name','like', "%{$name}") 

單引號

->orWhere('Name','like', '%'.$name) 

然後,爲最好的方法。 Simplifize查詢爲@阿維奧東真實回答的

$search = telephone::where('name', 'LIKE', "%{$name}%")->paginate(5); 
+0

如果沒有匹配的結果,仍然存在問題.'if($ search == NULL) 沒有結果! @else' – Steve

+0

'dd($ search)'在返回視圖之前顯示的是什麼? – Chay22

0

嘗試使用

@if($search->count() == 0) 

代替

@if($search==NULL) 
當然

你應該使用合適的地方的參數,如

$search=telephone::where('Name','like','%'.$name.'%')->paginate(5);