您好我在尝试使用闭包,以便我可以在查询中嵌套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
我确信这些值应存在于我的数据库中。
编辑2
这是当我注释掉两个orWhere
值正在正确返回时会发生什么。
这就是我通过我的控制台输出查询的方式。
$.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');
}
});
答案 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()