Laravel嵌套渴望加载如何从内部嵌套使用雄辩的条件

时间:2018-12-24 09:40:22

标签: php laravel lumen

我正在寻找一种在我的幼虫雄辩的关系中使用where条件并渴望加载的方法。

这是我的代码

  $data = Model::with(['stage_chatbot'=> function($stage_chatbot){
     $stage_chatbot->select('id', 'customer_id','stage','created_at');
     $stage_chatbot->orderBy('id', 'asc');
  }])->whereIn('hot_leads_id', $getMaxHl)->orderBy('updated_at', 'desc');

  $data->where('stage_chatbot.stage', 'like', 'sampleValue')->get();
  return $data;

谢谢!

3 个答案:

答案 0 :(得分:1)

尝试这个

在laravel中使用use关键字

$searchText = "sampleValue";
$data = Model::with(['stage_chatbot'=> function($stage_chatbot) use ($searchText) {
        $stage_chatbot->select('id', 'customer_id','stage','created_at')
        ->where('stage_chatbot.stage', 'like', "%".$searchText."%")
        ->orderBy('id', 'asc');
}])->whereIn('hot_leads_id', $getMaxHl)->orderBy('updated_at', 'desc')->get();

有关更多信息,如何在匿名函数see中使用use关键字

答案 1 :(得分:0)

您可以像这样使用whereHas()雄辩的方法。

$data = Model::with(['stage_chatbot'=> function($stage_chatbot){
    $stage_chatbot->select('id', 'customer_id','stage','created_at');
    $stage_chatbot->orderBy('id', 'asc');
}])->whereIn('hot_leads_id', $getMaxHl)->orderBy('updated_at', 'desc');

$data->whereHas('stage_chatbot', function ($stage_chatbot) {
   $stage_chatbot->where('stage', 'like', 'sampleValue')
})->get();
return $data;

答案 2 :(得分:0)

在“搜索输入”字段或值中定义一个变量,并通过模型查询中的使用传递该变量

尝试

$search = $request->search;
$data = Model::with(['stage_chatbot'=> function($stage_chatbot) use ($search) {
    $stage_chatbot->select('id', 'customer_id','stage','created_at');
    $stage_chatbot->where('stage', 'like',$searchText);
    $stage_chatbot->orderBy('id', 'asc');
}])->whereIn('hot_leads_id', $getMaxHl)->orderBy('updated_at', 'desc')->get();