【发布时间】:2018-03-23 05:11:13
【问题描述】:
我使用 yajra/laravel-datatables 来创建数据网格列表。我已根据要求使用连接来检索信息。
这是加入代码
$inquiryInvoice = DB::table('inquiry_invoice')->select('inquiry_invoice.*',DB::raw('CONCAT(inquiry_personal.first_name, " ", inquiry_personal.middle_name, " ", inquiry_personal.last_name) AS full_name'), 'inquiry_personal.id as inquiry_personal_id','branches.branch_name',DB::raw('CONCAT(users.first_name, " ", users.last_name) AS user_full_name'), DB::raw('CONCAT(counselor.first_name, " ", counselor.last_name) AS counselor_full_name'), 'inquiry_counselor.user_id as inquiry_counselor_user_id','inquiry_master.workflow_id',DB::raw(' "invoice" AS type'))
->join('inquiry_master', 'inquiry_master.id', '=', 'inquiry_invoice.inquiry_id')
->join('inquiry_personal', 'inquiry_master.id', '=', 'inquiry_personal.inquiry_id')
->join('branches', 'inquiry_master.branch_id', '=', 'branches.id')
->join('users', 'inquiry_master.user_id', '=', 'users.id')
->leftJoin('inquiry_counselor', 'inquiry_master.id', '=', 'inquiry_counselor.inquiry_id')
->leftJoin('users as counselor', 'inquiry_counselor.user_id', '=', 'counselor.id');
这是分配Datatables的代码
return Datatables::of($inquiryInvoice)
->escapeColumns([])
->make(true);
这里是 jQuery 代码
$dataTable = $('#data-table').DataTable({
processing: true,
serverSide: true,
Filter: true,
url:'{!! url("transaction_any_data") !!}',
columns: [
{ data: 'full_name', name: 'full_name' },
{ data: 'branch_name', name: 'branch_name' },
{ data: 'user_full_name', name: 'user_full_name' },
{ data: 'counselor_full_name', name: 'counselor_full_name' }
]
});
现在,当我尝试搜索某些内容时,它会给我 alert 和 error 这是一条错误消息,
现在我想知道,
如何使用JOIN 和CONCAT 列快速搜索?
有具体的方法吗?
请给我最好的方法...
【问题讨论】:
-
这与 DataTables 无关。您的 SQL 查询中存在错误,就像错误消息中所说的那样。
-
@Jerodev,这不是 SQL 错误,因为当我在 mysql 中运行查询时,它运行良好并返回结果。问题是 DataTables 在数据库表的列中搜索,而不是在连接列中
标签: php jquery mysql datatables laravel-5.4