多个位于关闭laravel的位置和内部

时间:2017-04-20 07:57:04

标签: php laravel

您好我在尝试使用闭包,以便我可以在查询中嵌套where子句。但我认为问题是它不能让我构建两个以上的子句,因为当我尝试使用orWhere继续构建时,它会发出错误。 你能帮我解决这个问题,为什么会返回错误?

  $filtered_table = $filtered_table->orWhere(function ($filtered_table) use ($splitYearQuarter){
                $filtered_table = $filtered_table->where('methods.created_at', 'LIKE', '%' . $splitYearQuarter[0] . '-' . '03' . '%')
                 ->orWhere('methods.created_at', 'LIKE', '%' . $splitYearQuarter[0] . '-' . '02' . '%')
                 ->orWhere('methods.crated_at', 'LIKE', '%' . $splitYearQuarter[0] . '-' . '01' . '%');
              });

编辑1

我确信这些值应存在于我的数据库中。

enter image description here

编辑2 这是当我注释掉两个orWhere值正在正确返回时会发生什么。

enter image description here

这里发布了我发布的常规查询,它会出错 enter image description here

这就是我通过我的控制台输出查询的方式。

$.ajax({
      url: '/filterdatacal',
      type: 'GET',
      data: {
        filters: filter_list,
      },
      success: function(filtered_table) {
        console.log(filtered_table);
        if(filtered_table == ""){
          console.log('empty but success');
        } else {
          //$("#datacal_table").empty();
          //console.log(filtered_table);
          for (var i=0; i < filtered_table.length; i++){
            for (var key in filtered_table[i]){
              if(key == 'method_created_at'){
                console.log(key + " -> " + moment(filtered_table[i][key]).format('MM/DD/YYYY hh:mm A'))
              } else {
              console.log(key + " -> " + filtered_table[i][key]);
            }
            }
          }
        }
      },
      error: function () {
        console.log('error');
      }
    });

2 个答案:

答案 0 :(得分:0)

老实说,我不知道为什么会出现这种行为(也许是因为我不熟悉的内容正在进行中)但是当我尝试这个查询时,它已经完成了。

 $filtered_table = $filtered_table->orWhere(function ($filtered_table) use ($splitYearQuarter){
                $filtered_table = $filtered_table->where('methods.created_at', 'LIKE', '%' . $splitYearQuarter[0] . '-' . '03' . '%');
                $filtered_table = $filtered_table->orWhere('methods.created_at', 'LIKE', '%' . $splitYearQuarter[0] . '-' . '02' . '%');
                $filtered_table = $filtered_table->orWhere('methods.created_at', 'LIKE', '%' . $splitYearQuarter[0] . '-' . '01' . '%');
              });

答案 1 :(得分:0)

我认为你可以跳过作业

InsertPermission()