Laravel 多参数搜索方法

Laravel 多参数搜索方法,laravel,Laravel,我在表单视图中创建了一个带有多个参数的搜索函数 在我的表格中,我有: 选框比赛 日期字段 为团队1选择一个框,为团队2选择另一个框 例如,我想只搜索竞争对手,只搜索日期,或只搜索1队或2队。对于我的实际查询,如果我不发送所有参数,则不会得到任何结果 有人知道如何做到这一点吗 这是控制器: 公共函数获取合同(请求$Request){ $compet=compet::pull('lb_compet','id'); $equipe=equipe::pull('lb_equipe','id');

我在表单视图中创建了一个带有多个参数的搜索函数

在我的表格中,我有:

  • 选框比赛

  • 日期字段

  • 为团队1选择一个框,为团队2选择另一个框

例如,我想只搜索竞争对手,只搜索日期,或只搜索1队或2队。对于我的实际查询,如果我不发送所有参数,则不会得到任何结果

有人知道如何做到这一点吗


这是控制器:

公共函数获取合同(请求$Request){
$compet=compet::pull('lb_compet','id');
$equipe=equipe::pull('lb_equipe','id');
$date\u rencontrol=$request->input('dt\u rencontrol');
$search=$request->input('compet_id');
如果($search){
$query=rencontrol::where(函数($q)use($search,$equipe,$date\u rencontrol){
$q->where('compet_id','=',$search)
->式中('equipe_住所_id'、'='、$equipe)
->其中('equipe_visiteur_id','=',$equipe)
->其中('dt\u rencontrol','=',$date\u rencontrol');
});
}否则{
$query=rencontrol::select();
}
$rencontres=$query->orderBy('dt_rencontres','DESC')->分页(10)
->附加(['recherche'=>$search]);
返回视图('rencontres/index',compact('rencontres','compet','equipe');
}

不清楚您想做什么,但我认为您确实在寻找查询生成器上的方法:

$query=rencontrol::query();
$filters=[
“设备住所”=>“设备住所id”,
“设备访问者”=>“设备访问者id”,
“dt_rencontrol”=>“dt_rencontrol”,
“compet_id”=>“compet_id”,
];
foreach($key=>$column形式的过滤器){
$query->when($request->{$key},函数($query,$value)use($column){
$query->where($column,$value);
});
}

即使这不是你想要的,它也会让你走上正确的道路。

Equipe::pluck('lb_Equipe','id')
会给你所有球队的id。您将进行两次该查询,并将其保存一次给主队,然后保存一次给另一队。不清楚你想做什么,我知道你是对的!但是现在让我们假设我在表单上只放了compet_id,然后运行查询,但没有得到任何结果。您的代码仍然没有意义。你真的应该再检查一遍。怎么了?我想同时对compet\u id或equipe\u id或dt\u rencontrol或all执行搜索查询。
equipe::pulk('lb\u equipe','id')
将返回表中所有id的列表。你不能在
where
子句中使用它。是的,这正是我要找的!我应该把代码放在哪里?好的,我终于找到了!用你的代码,它工作了!非常感谢约瑟夫!!