【发布时间】:2021-06-29 14:10:59
【问题描述】:
我正在使用 laravel 进行查询并返回符合多个条件的所有结果。其中之一是按日期,问题是我 以这种格式将日期存储在数据库中:
2021-03-26 12:20:00
并以这种格式显示它们:
2021 年 3 月 26 日
项目要求如果搜索:3月26日
返回给定月份和日期的所有项目
这需要在查询本身中完成,因为我还使用了分页和其他搜索和 orderBy 条件
我正在使用这个:
{...}
$attrDate = 'appointment.date';
$query->orWhereDate($attrDate, 'LIKE', ["%{$search}%"]);
$query->orderBy('appointment.date', $order)->take($pagination)->skip($skip);
$appointments=$query->get();
{...}
如果我搜索约会日期(2021 年 2 月 26 日...)中包含的数字,这将有效
但我还希望能够以字符串格式按月份搜索,例如“2021 年 3 月 26 日”或“2021 年 3 月 26 日”,并显示该给定日期的约会。尝试此操作时会出现错误:
$attrDate = 'appointment.date';
$date_transform= "DATE_FORMAT({$attrDate}, '%F%j,%Y')";
$query->orWhereDate($date_transform, 'LIKE', ["%{$search}%"]);
它返回一个带有 sql 错误的代码 500 响应。
我不知道该怎么做,因为所有这些都是项目的要求,我无法真正改变它们。我在 Laravel 文档中进行了搜索,但没有找到任何可以帮助我解决此问题的方法。提前致谢。
【问题讨论】:
-
就我而言,我会使用 laravel 时间戳格式进行正常搜索,但是在返回结果时,我会使用 getter 对其进行格式化。同样,当我进行搜索时:我将值格式化为我的格式,而用户认为它将按照他们的需要进行搜索。但我不知道这对你有用
标签: laravel eloquent laravel-query-builder