【问题标题】:Laravel query builder Call to a member function where() on nullLaravel 查询生成器调用成员函数 where() on null
【发布时间】:2021-03-27 07:16:20
【问题描述】:

我正在尝试进行验证以检查值是否为空。但它在执行时显示错误。代码如下:

$validation_query = DB::table('immunizations')->whereNull('deleted_at');
                        
foreach ($fileheaders as $valkey => $valvalue) {
    foreach($valvalue as $vlrw=>$valrowval) {
        if($schema[$immunization_mapping[$vlrw]->field_id] == 'personnel_id'){
            $validation_query = $validation_query->where('personnel_id','=', $valrowval);
        }
        if($schema[$immunization_mapping[$vlrw]->field_id] == 'immunization_date'){
            $validation_query = $validation_query->where('immunization_date', '>=', $valrowval);
        }
        $validation_query = $validation_query->where('immunization_type_id', '=', $immunization_type_id);
        $validation_query = $validation_query->first();
        
        if ($validation_query != '' && $validation_query->id != '') {
            $err = 1;
        }
    }
    $err_array['duplication'][] = $valkey;
    $valcnt++;
}

这个循环有什么问题吗?

【问题讨论】:

    标签: laravel foreach query-builder


    【解决方案1】:

    只需在 foreach 的每个循环中为您的查询提供一个适当的初始值:

     foreach ($fileheaders as $valkey => $valvalue) {
                        foreach($valvalue as $vlrw=>$valrowval) {
    
    $validation_query = DB::table('immunizations')->whereNull('deleted_at');
    
    
    if($schema[$immunization_mapping[$vlrw]->field_id] == 'personnel_id'){
                                $validation_query = $validation_query->where('personnel_id','=', $valrowval);
                            }
                            if($schema[$immunization_mapping[$vlrw]->field_id] == 'immunization_date'){
                                $validation_query = $validation_query->where('immunization_date', '>=', $valrowval);
                            }
                            $validation_query = $validation_query->where('immunization_type_id', '=', $immunization_type_id);
                            $validation_query = $validation_query->first();
    
    
                            if ($validation_query != '' && $validation_query->id != '') {
                                $err = 1;
                            }
                        }
                        $err_array['duplication'][] = $valkey;
                        $valcnt++;
                    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-01-03
      • 2016-03-23
      • 1970-01-01
      • 2018-12-26
      • 2020-12-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多