服务器端数据表实现:如何从控制器读取dd/mm/yy格式的日期进行搜索

问题描述 投票:0回答:1

正如标题所示,我正在实现服务器端数据表。

我在全局搜索中读取 dd/mm/yy 格式中的 birthDate 时遇到问题。

我只能读取y-m-d格式的日期(即数据库的默认日期)。

这是我的代码:

        // get data from user_dummies table
        $query = DB::table('user_dummies')->select('*');

        // Global Search
        $search = $request->search;
        $query = $query->where(function ($query) use ($search) {
            $query->orWhere('firstName', 'like', "%" . $search . "%");
            $query->orWhere('lastName', 'like', "%" . $search . "%");
            $query->orWhere('age', 'like', "%" . $search . "%");
            $query->orWhere('birthDate', 'like', "%" . $search . "%");
            $query->orWhere('role', 'like', "%" . $search . "%");
        });

我尝试编写与下面的出生日期相对应的代码,但我从数据表中收到错误,

DataTables 警告:表 id=datatable - Ajax 错误。

 $query->orWhere(date('d/m/y',strtotime('birthDate')), 'like', "%" . $search . "%");

有人可以告诉我该怎么做吗?

javascript php laravel
1个回答
0
投票

你可以使用

$query->orWhereRaw("DATE_FORMAT(birthDate, '%d/%m/%y') LIKE ?", ["%$search%"]);

并注意SQL注入

© www.soinside.com 2019 - 2024. All rights reserved.