将Laravel Join查询转换为关系查询不会返回任何内容

问题描述

我将laravel左联接查询转换为关系查询,为此我创建了所有必需的关系。但是它没有返回任何数据以供参考。我同时附上了两个查询,请提出我该怎么做才能使它正常工作。

查询

$q = DB::table('contracts')
        ->select('contracts.id','contracts.contract_start_time','contract_candidate_schedule.*','contracts.contract_client_id','contracts.contract_candidate_id','contracts.contract_vacancy_id','contracts.contract_start_date','contracts.contract_end_date','client.client_refno','client.client_name','vacancy.vacancy_jobTitle','candidate.candidate_mobilePhone','candidate.candidate_refNo',DB::raw('CONCAT(candidate_forename," ",candidate_surname) AS full_name'),DB::raw('CONCAT(contact_title,contact_forename,contact_surname) AS contact_full_name'),'contract_schedule.contract_date',DB::raw("MIN(contract_schedule.contract_date) AS contract_date"))            
        ->leftjoin('client','client.id','=','contracts.contract_client_id')
        ->leftjoin('vacancy','vacancy.id','contracts.contract_vacancy_id')
        ->leftjoin('client_contact','client_contact.contact_clientid','contracts.contract_client_id')
        ->leftjoin('contract_schedule','contract_schedule.contract_id','contracts.id')
        ->leftjoin('contract_candidate_schedule',function($join){
               $join->on('contract_schedule.id','contract_candidate_schedule.contract_schedule_id')
              ->where('contract_candidate_schedule.contract_schedule_date',DB::raw("MIN(contract_schedule.contract_date) AS contract_date"));
           })
        ->leftjoin('candidate','candidate.id','contract_candidate_schedule.contract_schedule_candidate_id')
        ->where('contact_primarycontact','1');
        
    if(isset($start_date) && $start_date != "" && isset($end_date) && $end_date != ""){
        $sDate = DateTime::createFromFormat ("d/m/Y",$start_date);
        $eDate = DateTime::createFromFormat ("d/m/Y",$end_date);
        $q->whereBetween("contract_schedule.contract_date",array($sDate->format("Y-m-d"),$eDate->format("Y-m-d")));
    }
    
   $allContract = $q->groupby("contracts.id")->groupby("contract_candidate_schedule.id")->orderby("contract_schedule.contract_date","desc")->distinct()->paginate($tot);

查询

 $q= Contracts::with("client","vacancy",'clientContact');
            if(($contract_date_from) && $contract_date_to != "" && ($contract_date_from) && $contract_date_to != ""){
                $q->whereHas('contractScheduleSingle',function($f) use($contract_date_from,$contract_date_to){
                 $f->whereBetween("contract_date",array($contract_date_from,$contract_date_to));
                });
            }
            else{
                $q->with('contractScheduleSingle');
            }
            $q->whereHas('contractCandidateSchedule',function($info) {
               $info->where('contract_candidate_schedule.contract_schedule_date',DB::raw("MIN(contract_schedule.contract_date)"))->with('candidate');           
            });
        
        $result = $q->groupby("contracts.id")->groupby("contract_candidate_schedule.id")->orderby("contract_schedule.contract_date","desc")->distinct();

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...