serach框中的前导0引发错误(Laravel数据表)

serach框中的前导0引发错误(Laravel数据表),laravel,search,join,datatable,Laravel,Search,Join,Datatable,在我的controller方法中,我使用left连接多个表。它根据需要返回数据,但当我在搜索框“0”中键入时,它会抛出一个错误 使用此Laravel Datatable插件 只有在搜索框中有一个0时才会发生这种情况。”00'或't0102'工作正常 只有单个“0”作为搜索值会引发错误 在演示站点上发生 尝试仅搜索0zero,它将返回一个错误 花了几个小时后,我得出结论,这是因为在MySql查询中,如%0%没有在00附近添加倒逗号 它应该像“%0%”,而不是像%0%。 问题代码片段 下面是我的查询

在我的controller方法中,我使用left连接多个表。它根据需要返回数据,但当我在搜索框“0”中键入时,它会抛出一个错误

使用此Laravel Datatable插件

只有在搜索框中有一个0时才会发生这种情况。”00'或't0102'工作正常

只有单个“0”作为搜索值会引发错误

在演示站点上发生 尝试仅搜索0zero,它将返回一个错误

花了几个小时后,我得出结论,这是因为在MySql查询中,如%0%没有在00附近添加倒逗号 它应该像“%0%”,而不是像%0%。 问题代码片段

下面是我的查询生成器代码

$surveys = DB::table('surveys as su')
    ->leftJoin('assignments as a', 'su.assignment_id', '=', 'a.id')
    ->leftJoin('rounds as r', 'a.round_id', '=', 'r.id')
    ->leftJoin('projects as p', 'r.project_id', '=', 'p.id')
    ->leftJoin('sites as s',  'a.site_id', '=', 's.id')
    ->leftJoin('fieldreps as f', 'a.fieldrep_id', '=', 'f.id')
    ->leftJoin('chains as ch','p.chain_id','=','ch.id')
    ->leftJoin('clients as c','ch.client_id','=','c.id')
    ->leftJoin('surveys_templates as t', 'su.template_id', '=', 't.id')
    ->where(function ($query) {
      $query->where('a.is_reported', '=', true)
      ->orWhere('a.is_partial', '=', true)
      ->orWhere('a.is_approved', '=', true);
    })
    //->where('su.service_code', '!=', '')
    ->select([
      'a.id as assignment_id',
      'a.fieldrep_id',
      'a.deadline_date',
      'a.is_reported',
      'a.is_partial',
      'a.is_approved',
      'c.client_logo',
      'p.id as project_id',
      'p.project_name',
      'r.id as round_id',
      'r.round_name',
      's.site_code',
      's.site_name',
      's.city',
      's.state',
      's.zipcode',
      'su.id as survey_id',
      'su.status',
      'su.service_code',
      't.template_name',
      DB::raw("CONCAT(IFNULL( DATE_FORMAT(a.schedule_date,'%e/%c/%Y'), DATE_FORMAT(r.schedule_date,'%e/%c/%Y')), ' ' , IFNULL(a.start_time, r.start_time)) as assignment_scheduled"),
      DB::raw("CONCAT(IFNULL( DATE_FORMAT(a.schedule_date,'%d %b %Y'), DATE_FORMAT(r.schedule_date,'%d %b %Y')), ' ' , IFNULL(a.start_time, r.start_time)) as assignment_scheduled_date"),
      DB::raw("CONCAT(DATE_FORMAT(a.start_date,'%d %b %Y'),' ',a.start_time) as assignment_starts"),
      DB::raw('CONCAT(f.first_name," ",f.last_name) as schedule_to'),
      ]);

语法错误或访问冲突:1583对本机函数“LOWER”的调用中参数不正确SQL:选择count*作为聚合,从中选择a.id作为分配id、a.fieldrep\u id、a.date\u日期、a.is\u报告、a.is\u部分、a.is\u批准、c.client\u徽标、p.id作为项目id、p.project\u名称、r.id作为圆形id、r.round\u名称、s.site\u代码,s.site_name、s.city、s.state、s.zipcode、su.id作为调查_id、su.status、su.service_code、t.template_name、CONCATIFNULL DATE_格式a.schedule_DATE、%e/%c/%Y、''、IFNULLa.start_time、r.start_times作为任务计划的时间、CONCATIFNULL DATE格式a.schedule日期、%d%b%Y、%Y、'DATE,'%d%b%Y','',如果为空,则为a.start\u time,r.start\u time作为工作分配\u计划日期,CONCATDATE\u格式a.start\u日期,'%d%b%Y','',a.start\u time作为工作分配\u开始,CONCATf.first\u name,f、 last_name as schedule_to from surveys as su left join assignment as a on su.assignment_id=a.id left join rounds as r on a.round_id=r.id left join projects as p on r.project_id=p.id left join sites as s on a.site_id=s.id left join fieldreps as f on a.fieldrep_id=f.id left join chains as ch on p.chain\u id=ch.id left join客户端as c在ch.client\u id=c.id上,左键将调查模板作为t在su.template\u id=t.id上,其中a.is\u reported=1或a.is\u partial=1或a.is\u approved=1并降低.site\u代码(如%0%)或LOWERsu.service\u代码(如%0%)或LOWERp.project\u名称(如%0%)或LOWERr.round\u名称(如%0%)或LOWERr.city(如%0%)或LOWERsurveys(如su.assignment\u计划分配)LOWERt.template_名称如%0%或LOWERsurveys如su.schedule_如%0%order by LPAD.site_代码,10,0 desc count_row_table'

你能添加你的查询生成器代码吗?编辑的问题。你没有包括你使用的部分,我认为这会导致语法错误:LOWERsurveys as su.assignment_scheduledIts插件功能添加,就像在演示示例中遇到错误的插件链接一样