Laravel中的多个where和or条件

Laravel中的多个where和or条件,laravel,Laravel,如何准备有关多个where条件的查询条件。 我需要检索与名称(cognome是lastname,nome是name)相关的dataIT(开始)和dataFT(结束)的当前年份和月份的记录 考虑到其必须有效,例如从当月工程开始和结束的日期: dataIT=2021-04-30和dataFT=2021-05-01 或 dataIT=2021-05-10和dataFT=2021-06-10 $result=DB::table('timbraturas') ->wh

如何准备有关多个where条件的查询条件。 我需要检索与名称(cognome是lastname,nome是name)相关的dataIT(开始)和dataFT(结束)的当前年份和月份的记录 考虑到其必须有效,例如从当月工程开始和结束的日期: dataIT=2021-04-30和dataFT=2021-05-01 或 dataIT=2021-05-10和dataFT=2021-06-10

    $result=DB::table('timbraturas')
            ->where('cognome',$cognome)
            ->where('nome',$nome)
            ->whereMonth('dataIT','=',Carbon::now()->month)
            ->whereYear('dataIT','=',Carbon::now()->year)

             **or (
                  ->whereYear('dataFT','=',Carbon::now()->year)
                  ->whereMonth('dataFT','=',Carbon::now()->month)
              )**

            ->orderBy('id','asc')
            ->get();
    return $result;

}

闭包可以与
或where
选项一起使用,这允许指定多个条件

 $result=DB::table('timbraturas')
            ->where('cognome',$cognome)
            ->where('nome',$nome)
            ->whereMonth('dataIT','=',Carbon::now()->month)
            ->whereYear('dataIT','=',Carbon::now()->year)
            ->orWhere(function($query) {
                  $query->whereYear('dataFT','=',Carbon::now()->year)
                  ->whereMonth('dataFT','=',Carbon::now()->month);
              })

文档:

它可以工作!谢谢,太好了!你能接受/更新答案以便其他人能找到吗?我该怎么办?对不起,我是初学者,我不明白答案左侧箭头下方有一个复选标记,你可以点击。签出文档:我只是更好地测试了解决方案,我注意到我得到了所有用户的值(姓氏和姓名)姓氏和姓名。