抱歉,如果标题不清楚,我不知道该怎么说。。
我正在创建一个搜索函数来过滤订单。每个订单都分配了一个用户id或父id(如果用户是子用户),用于将订单与用户关联起来。
例如:userid,parentid,name,product,delivery。
我的问题是:按名称等搜索将返回该名称的所有结果,而不管您是否按id关联。
所以我基本上需要:where userid或parentid=current userid后跟搜索条件:orwhere name,orwhere product,orwhere delivery=search term。
我目前的工作方式是检查数据库中所有搜索词的匹配,然后在我的控制器中取消设置数据,只输出与userid或parentid匹配的数据。有没有更好的办法?
顺序控制器
$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;
}
1条答案
按热度按时间c90pui9n1#
将id发送到函数:
然后将函数更改为使用此id:
在我看来,这种控制器不应该存在。”dbcontroller“应该是一个不同的层,比如服务或模型。