【发布时间】:2021-04-10 09:13:14
【问题描述】:
我使用了范围搜索
- 我的模型:历史
公共函数 scopeSearch($query, $term)
$result = $query->where('user_id', 'like', '%' .$term. '%');
return result;
我在历史视图中使用了一个搜索栏,用户可以输入他们的ID,如果有与历史相关的ID,它将显示他们的历史。
tables:
'users' - columns: name, ...
'histories' -columns: user_id, ...
如果用户搜索 ID,我的 scopeSearch 会起作用。我希望用户输入姓名,而不是显示他们的 ID 和他们的历史记录。
问题是“历史记录”中只有 user_id
我如何使用这个 Eloquent?
我尝试使用 tinker 输入奇怪的东西,并通过获取“用户”中的所有数据在 scopeSearch 函数中进行了一些修改,但它没有用。我在人际关系中完全虚弱。对不起,如果我听起来很贪婪。
[更新]有人建议我使用join方法,我正在尝试中
【问题讨论】:
-
用户登录后是否使用此搜索?如果不是,你怎么知道用户是谁?
-
这不是必须的,这个范围搜索只是根据用户输入的内容过滤历史。您是否建议使用身份验证方法?