我的目标是在Order db上创建一个搜索,但其中一些有关系。
是否可以为此SQL查询创建查询构建器:
var test_data = data.split(/\r?\n|\r/);
var table_data = '<table>';
var count = 0;
for (var i = 0; i < test_data.length; i++) {
var cell_data = test_data[i].split(",");
table_data += '<tr>';
for (var j = 0; j < cell_data.length - 1; j++) {
if(i === 0) {
table_data += '<th colspan="4">' + cell_data[j] + ":" + cell_data[j + 1] + '</th>';
} else {
table_data += '<td>' + cell_data[j] + ":" + cell_data[j + 1] + '</td>';
}
}
alert(count);
if (count == 3) {
table_data += '</tr>';
count = 0;
} else {
count += 1;
}
//table_data += '</tr>'
}
table_data += '</table>';
$('#loadData').html(table_data);
现在,我猜测每个条件都使用SELECT * FROM `order` AS a
JOIN `users` AS b ON b.id = a.user_id
WHERE
LPAD(a.id,6,'0') LIKE '%keyword%'
OR
b.name LIKE '%keyword%'
OR
a.order_detail LIKE '%keyword%'
,如:
orWhere
答案 0 :(得分:1)
试试这个:
Order::where(DB::raw("LPAD(id, 6, '0')"), 'LIKE', '%'. $keyword .'%')
->orWhere('order_detail', 'LIKE', '%'. $keyword .'%')
->orWhereHas('user', function ($query) use ($keyword) {
$query->where('name', 'LIKE', '%'. $keyword .'%');
})->get();