如何申请或条件在哪里?

时间:2019-11-03 11:34:23

标签: laravel

我想显示cv表中的数据,其中user_id是$ request-> id。 另外,过滤完成了,所以我不得不放很多orWhere。 因此,我的代码无法正常工作。 抱歉的问题有点令人困惑。

 $search = $request->input('search.value');
 $results = cv::with(['industrySegments','jobLocations','jobPositions','languages'])->where('user_id',$request->id);
 $results->orWhere('name','LIKE',"%{$search}%");
 $results->orWhere('gender','LIKE',$search);
 $results->orWhere('contact','LIKE',$search);
 $results->orWhere('contact2','LIKE',$search);

此代码无效。 每当我在搜索按钮中键入某些内容时,它就会显示不应显示的数据。 我只想显示user_id为$ request-> id的数据。

2 个答案:

答案 0 :(得分:0)

测试下一个代码:

$results = cv::with(['industrySegments','jobLocations','jobPositions','languages']);

if(!empty($request->id))
{
 $results->where('user_id',$request->id);
}
else
{
 $results->orWhere('name','LIKE',"%{$search}%");
 $results->orWhere('gender','LIKE',$search);
 $results->orWhere('contact','LIKE',$search);
 $results->orWhere('contact2','LIKE',$search);
}


答案 1 :(得分:0)

我认为您想做的是advanced where

您的查询将是这样

$results = cv::with(['industrySegments','jobLocations','jobPositions','languages'])->where('user_id',$request->id)->where(function($q)use($search){
    $q->where('name','LIKE',"%{$search}%")->orWhere(..........;    
})->get();

因此,您可以在哪里/或在哪里玩耍