【发布时间】:2021-07-04 01:42:40
【问题描述】:
这是我的控制器代码:
if ($request->exists('tipo')) {
$valor = $request->value;
$candidates = Candidate::buscarpor($tipo, $valor)
->orderBy('id', 'desc')
->Paginate(5)
->withQueryString();
dd($candidates);
}
这是我的“候选”模型中的“buscarpor”范围:
public function scopeBuscarpor($query, $tipo, $valor)
{
if(($tipo) && ($valor)) {
if($tipo == 'names') {
// return $query->orWhereRaw("concat(name, ' ', last_name) like '%".$valor."%' ");
return $query->where(DB::raw("CONCAT('name', ' ', 'last_name')"), 'like', '%'.$valor.'%')
->orWhere(DB::raw("CONCAT('last_name', ' ', 'name')"), 'like', '%'.$valor.'%');
}
return $query->where($tipo, 'like', "%$valor%");
}
}
当搜索类型为“名称”时,我应该在数据库中查询以使用他的名字或姓氏搜索候选人/人,我只有一个输入类型文本,我只是写下他的所有名字就是这个输入输入文字。
这个范围内的变量 $valor 有数据并且没有问题。我测试了添加一个存在于我的数据库中的名称,但它返回 0 个项目。
这是我的dd($candidates) 输出。
我不知道我做错了什么,如果您对如何解决此问题有一些想法,请大家帮忙,我将不胜感激。非常感谢。
【问题讨论】: