我正在try 为这个用例找到解决方案.
我有一个USERS表,其中包含字段first_name
和last_name
以及一个名为full_name
的定制属性.
public function getFullNameAttribute()
{
return ucfirst($this->name) . ' ' . ucfirst($this->last_name);
}
现在我正在寻找一种方法,可以同时过滤first_name
和last_name
或full_name
.
示例:
搜索Sebastian Mendez
应该会找到用户,如下例所示:
first_name | last_name | found |
---|---|---|
Juan Sebastian | Mendez Tellez | true |
Sebastian Mendez | Tellez | true |
Juan | Sebastian Mendez | true |
Sebastian | Tellez | false |
Juan | Mendez | false |
我想不通了,我试着把搜索文本分割成不同的字符串,如下所示:
public function scopeSearch($query, $search){
$str = "Sebastian Mendez";
$str = explode(" ",$search);
$query->whereIn('first_name', $str)->andWhereIn('last_name', $str);
}
但随后它也会返回其他结果,或者一个也不返回. 我想问题是这样的:
I don't know which part of the string is part of the first or last name...个