2015-05-25 65 views
0

我该如何去使用用户输入的关键字搜索我的数据库,然后在另一个页面上显示最相关的结果? 我在下面提供的代码只是给了我一个空白页面,我第一次认为这只是因为我没有在我的数据库中,但是当我检查有一个输入与该关键字。Laravel sqlite3针对特定关键字的雄辩搜索数据库表

我的搜索功能:

public function searchUsers() 
{ 
    $searchWord = Input::get('searchBox'); 

    return View::make('user.search')->with('users', User::where('fullname', 'LIKE', '%'. $searchWord .'%')); 
} 

用户输入在这片形式的字:

{{ Form::open(array('url' => secure_url('user/searchUsers'), 'class'=>'form-group has-feedback')) }} 
<h1 style="font-size:55px; text-align:center;">Search for Friendship!</h1> 
<br> 
{{ Form::text('searchBox', $value = null, array('placeholder' => 'Search', 'class'=> 'form-control input-lg','autofocus' => 'autofocus')) }} 
{{ Form::close() }} 

我如何展示我的结果:

@foreach ($users as $user) 
     <div id="commentPanel"class="panel panel-default"> 
    <div class="panel-heading">{{ $user->fullname }}</div> 
    <div class="panel-body"> 
     <p id="commentP">{{ $user->email }}</p> 
    </div> 
</div> 

回答

1

那么不必返回来自数据库的用户,您只需将Eloquent对象的条件设置为只返回查询对象。更改您的退货声明是这样的:

return View::make('user.search') 
     ->with(
      'users', 
      User::where('fullname', 'LIKE', '%'. $searchWord .'%')->get() 
     );