【发布时间】:2021-02-11 10:06:37
【问题描述】:
我正在使用 Laravel Livewire 数据表,但在搜索时出现错误。
类 Illuminate\Database\Eloquent\Builder 的对象不能是 转成字符串
我的搜索方法是
public static function search($QUERY)
{
return empty($QUERY) ? static::QUERY()
: static::WHERE(function ($QUERY) {
$QUERY->WHERE('name', 'like', '%' . $QUERY . '%')
->orWhere('email', 'like', '%' . $QUERY . '%');
});
}
Livewirerender 方法
public function render()
{
//$this->roles = ROLE::WHERE('company_id', SESSION('company_id'))->paginate(5);
return VIEW('livewire.users', [
'users' => USER::search($this->search)
->WITH(['role', 'company'])
->WHERE('company_id', SESSION('company_id'))
->orderBy($this->sortField, $this->sortAsc ? 'asc' : 'desc')
->paginate($this->perPage),
]);
}
【问题讨论】:
-
$QUERY->WHERE('name', 'like', '%' . $QUERY . '%')这行没有意义,更改传递给search方法的参数名称,因此它与传递给闭包的参数不同,这是一个查询生成器的实例。 -
#Remul 你的意思是像这个 public static function search($query1) { return empty($query) ? static::query() : static::Where(function ($query1) { $query1->where('name', 'like', '%' . $query1. '%') ->orWhere('email' , '喜欢', '%' . $query1. '%'); }); }
标签: laravel eloquent laravel-livewire