【发布时间】:2018-02-07 07:49:43
【问题描述】:
我想使用数组更新我的数据,但它的错误导致我在查找数据时使用“like”查询。这是代码。
$pin = 10590;
$datetime = "2017-08-29 15:05:00";
$date = explode(' ', $datetime);
Attendance::where('user_id', $pin)->where('datetime_in', 'like', '%' . $date[0] . '%')->update([
'datetime_out' => $datetime,
'updated_at' => date('Y-m-d')
]);
任何解决方案?谢谢。
【问题讨论】:
-
应该没有错误。你能添加调试器的详细输出吗?
-
@Buglinjo 服务器现在已关闭,所以我无法显示输出,但如果我在 mysql 中运行代码,错误是这样的
Incorrect datetime value: '%2017-08-29%' for column 'datetime_in' -
您应该在 varchar 或文本上使用 like 过滤器,而不是日期时间。在日期时间只需使用 =
-
@Buglinjo 喜欢这样吗?
UPDATE attendance SET datetime_out="2017-08-29 15:06:00" WHERE user_id = 201037917001 AND datetime_in = "2017-08-29"; -
像这样:
Attendance::where('user_id', $pin)->where('datetime_in', '=', $date[0])->update([ 'datetime_out' => $datetime, 'updated_at' => date('Y-m-d') ]);
标签: arrays laravel eloquent sql-update