【发布时间】:2019-06-03 07:34:46
【问题描述】:
抱歉,如果标题不清楚,我不确定如何措辞..
我正在创建一个用于过滤订单的搜索功能。每个订单都分配了一个用户 ID 或父 ID(如果用户是子用户),用于将订单与用户关联。
例如:用户 ID、父母 ID、姓名、产品、交货。
我的问题是:按名称等搜索将返回该名称的所有结果,无论您是否通过 id 关联。
所以我基本上需要:其中 userid 或 parentid = current userid 后跟搜索条件:orwhere name, orwhere product, orwhere delivery = search term。
我目前通过检查数据库中的所有搜索词匹配,然后取消设置控制器中的数据以仅输出匹配用户 ID 或父 ID 的数据来实现此功能。有一个更好的方法吗?
订单控制器
$data = app('App\Http\Controllers\DbController')->getordersbysearch($search);
foreach($data as $row => $key){
if($key->Userid != $id || $key->parentid != $id){
unset($data[$row]);
}
else{
$key->Response = json_decode($key->Response);
}
数据库控制器
public function getordersbysearch($search){
$result = DB::table('orders')->where("Name", 'like', '%' . $search['search'] . '%')->orWhere("product", 'like', '%' . $search['search'] . '%')->orWhere("delivery", 'like', '%' . $search['search'] . '%')->get();
return $result;
}
【问题讨论】: