php - 使用 Laravel 查询多个字段

标签 php mysql search laravel

因此,我尝试创建一个搜索功能,以便您可以查询名字和姓氏。我可以使用什么作为查询的 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/

相关文章:

php - Tcpdf 单页多个书签

php - 使用选择数据更新查询

php - mysql php函数没有返回值

java - 将远程 Mysql 连接到 Netbeans

php - 如何从两个mysql表中选择不匹配的行

c++ - CLucene 上的 "More Like This"

search - 搜索时保留位置

php - Codeigniter 中的 Select-max() 值对于两个或多个字符工作错误

php - 在 Yii 中为用户表创建一个唯一的随机标记字符串

elasticsearch - 无法将加入请求发送到主 Elasticsearch 5.4 集群