因此,我尝试创建一个搜索功能,以便您可以查询名字和姓氏。我可以使用什么作为查询的 AND 语句?
public function find()
{
$search = Input::get('contact_search');
$query = Contact::orderBy('name', 'desc');
if (is_null($search))
{
$contacts = $query->paginate(15);
//return View::make('contacts.index')->with(array('contacts' => $contacts));
} else {
$contacts = $query->where('firstName', 'LIKE', "%{$search}%")
->orWhere('lastName', 'LIKE', "%{$search}%")
->paginate(15);
$contact = Contact::find(1);
}
return View::make('hello')->with(array('contacts' => $contacts));
}
我已经尝试过
$query->where('firstName', 'LIKE', "%{$search}%")
->Where('lastName', 'LIKE', "%{$search}%")
但这也不起作用。任何建议都会很棒!谢谢。
最佳答案
where()
已经充当 and
语句。只需将它们链接在一起即可。
$people = People::where('first_name','=','John')->where('last_name','=','Doe')->get();
在您的查询中,您有->Where
。确保其小写。
此外,您的方法可以进行一些优化。您正在搜索多个联系人并对结果进行分页,但由于某种原因您正在执行 find(1)
。更好的方法是执行以下操作:
$contact = Contact::orderBy('name','desc')
->where('firstName', 'LIKE', "%{$search}%")
->where('lastName', 'LIKE', "%{$search}%")
->first();
这将返回结果中您的第一个联系人。无需分页。而且 find()
实际上会根据 id 搜索记录,因此在这种情况下您不想使用它。
关于php - 使用 Laravel 查询多个字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26533191/