Php 拉雷维尔雄辩的在哪里或在哪里
如何使用Eloquent和where数组创建查询? 如果where子句是,并且没有问题,我将使用下一个代码:Php 拉雷维尔雄辩的在哪里或在哪里,php,laravel,eloquent,Php,Laravel,Eloquent,如何使用Eloquent和where数组创建查询? 如果where子句是,并且没有问题,我将使用下一个代码: $whereArray = array( 'start_time' => '123', 'team1' => '123', 'team2' => '123', 'sport' => '123', 'league' => '13',
$whereArray = array(
'start_time' => '123',
'team1' => '123',
'team2' => '123',
'sport' => '123',
'league' => '13',
);
$rows = Table::where($whereArray)->get();
问题是
select * from `table` where start_time ='123' and team1 = '123' and team2 = '123' and sport = '123' and league = '123'
但是我怎么能用类似的方法得到或者
select * from `table` where start_time ='123' OR team1 = '123' OR team2 = '123' OR sport = '123' OR league = '123'
您可以使用orWhere方法
您可以迭代所有where并添加orWhere子句:
$whereArray = array(
'start_time' => '123',
'team1' => '123',
'team2' => '123',
'sport' => '123',
'league' => '13',
);
$rows = DB::table('table');
foreach ($whereArray as $where) {
$rows->orWhere($where);
}
$rows = $rows->get();
同样根据Laravel文件:
您可以将where约束链接在一起,也可以向查询中添加or子句。orWhere方法接受与where方法相同的参数
这意味着您可能只需这样做就可以逍遥法外:
Table::orWhere($whereArray)->get();
您可以使用数组,只需使用orWhere即可
将查询分配给变量$query,在$WHERERRAY上循环并添加->或WHERE$key,=,$value;。跟踪索引,以便您可以作为->where和->或where来完成第一次传递。@ka_lin where在这里不起作用。Eric答案中的代码可以正常工作。
$whereArray = array(
'start_time' => '123',
'team1' => '123',
'team2' => '123',
'sport' => '123',
'league' => '13',
);
$rows = Table::orWhere($whereArray)->get();