Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 拉雷维尔雄辩的在哪里或在哪里_Php_Laravel_Eloquent - Fatal编程技术网

Php 拉雷维尔雄辩的在哪里或在哪里

Php 拉雷维尔雄辩的在哪里或在哪里,php,laravel,eloquent,Php,Laravel,Eloquent,如何使用Eloquent和where数组创建查询? 如果where子句是,并且没有问题,我将使用下一个代码: $whereArray = array( 'start_time' => '123', 'team1' => '123', 'team2' => '123', 'sport' => '123', 'league' => '13',

如何使用Eloquent和where数组创建查询? 如果where子句是,并且没有问题,我将使用下一个代码:

$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();