我正在使用Livewire创建交互式文本表单输入。
当用户在文本框中键入一些字符时,我希望从与用户具有hasMany关系的表中返回筛选后的注册。
从本质上讲,用户拥有许多汽车。(尽管密钥是creator_id,而不是user_id)。
我正在努力做一些事情,沿着以下路线:
public function getSuggestions()
{
$user = Auth::user();
return $user->registrations->where('registration','like', '%' . $this->search . '%');
}
字符串
用户模型包含以下关系:
public function registrations():HasMany
{
return $this->hasMany(Registration::class,'creator_id');
}
型
当我只使用下面的代码而不尝试过滤查询时...
return $user->registrations;
型
我得到了用户拥有的所有注册的集合,这是正确的。每次我输入一个字符时,它也会调用函数返回注册信息,所以Livewire可以正常工作
但是,我不知道如何修改查询,所以返回的注册在like子句上进行过滤。
1条答案
按热度按时间sgtfey8w1#
假设用户模型中有以下关系:
字符串
你可以像这样修改
getSuggestions()
方法:型
调用
get()
执行查询并将筛选后的注册作为集合检索。