我正在尝试为Laravel 4中的后端创建搜索功能,我可以按(firstname
,lastname
,email
)搜索用户。到目前为止我有这个功能,但它并没有真正起作用:
public function searchUser()
{
$search = Input::get('search');
$searchTerms = explode(' ', $search);
foreach($searchTerms as $term)
{
$query = User::Where('firstname', 'LIKE', '%'. $term .'%');
}
$results = $query->get();
}
如何在其中获得lastname
,email
等其他人?
答案 0 :(得分:6)
你可以这样做:
<?php
public function searchUser()
{
$search = Input::get('search');
$searchTerms = explode(' ', $search);
$query = User::query();
$fields = array('first_name', 'last_name', 'email');
foreach ($searchTerms as $term)
{
foreach ($fields as $field)
{
$query->orWhere($field, 'LIKE', '%'. $term .'%');
}
}
$results = $query->get();
}
这样,它将对所有字段中的所有搜索词进行LIKE查询。
您还可以通过执行以下操作对其进行分页:
$result = $query->paginate(10);