这是联接代码并分配Datatables
Route::get('Productos',function(){
$query = DB::table('producto as e')
->select('e.cod_producto', 'e.nom_producto', 'e.precio_venta', 'd.nombre as nombre_marca', 'j.nombre as nombre_tipo', DB::raw('if(e.estado = 0,\'Activo\',\'Eliminado\') as estado'))
->join('marca as d','e.cod_marca', '=', 'd.cod_marca')
->join('tipo-producto as j', 'e.cod_tipo_producto', '=', 'j.cod_tipo_producto');
return datatables()
->of($query)
->addColumn('btn','actions')
->rawColumns(['btn'])
->toJson();
});
这是jQuery代码
$(document).ready(function(){
$('#Productos').DataTable({
"bAutoWidth": false,
"destroy": true,
"responsive": true,
"serverSide":true,
"ajax":'{{url('api/Productos')}}',
"columnDefs": [ {
"targets": 'no-sort',
"orderable": false,
"searchable": false,
}],
"columns":[
{data: 'cod_producto'},
{data: 'nom_producto'},
{data: 'precio_venta'},
{data: 'nombre_marca'},
{data: 'nombre_tipo'},
{data: 'estado'},
{data: 'btn'},
]
});
});
现在,当我尝试搜索某些内容时,它会提示我错误,这是一条错误消息
异常消息:↵↵SQLSTATE[42000]:语法错误或访问冲突:
1583调用本机函数“ LOWER”(SQL:
从中选择count(*)作为聚合(从中选择作为
row_count
producto
作为e
内部联接marca
作为d
在e
上。cod_marca
=d
。cod_marca
内部联接tipo-producto
作为j
e
。cod_tipo_producto
= j
。cod_tipo_producto
其中(LOWER(
producto
as e.cod_producto
)像%1%或LOWER(producto
ase.nom_producto
)喜欢%1%或LOWER(producto
as e.precio_venta
)像%1%或LOWER(
marca
。nombre
)像%1%或LOWER(
tipo-producto
。nombre
)像%1%或LOWER(producto
作为e.estado
)喜欢%1%))count_row_table) 最佳答案
根据查询的联接数据字段设置数据表列名称
这是样本
"columns":[
{data: 'cod_producto', name:'e.code_product'},
{data: 'nom_producto', name:'e.nom_producto'},
....
关于php - yajra/laravel-datatables搜索不适用于laravel 5.7,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52618813/