Laravel无法更新数据MySQL

时间:2019-10-23 08:40:37

标签: php sql database laravel controller

所有内容都立即显示在dd中,但表中没有任何变化。有人知道为什么吗?

$name = $request->get('name');
$now= new DateTime;
$userId = Auth::id();

dd($name . $userId); //tady je to ještě OK

DB::table('users')->where('id', $userId)->where('changed_name', '<', Carbon::now()->subdays(60)->toDateTimeString())->update(['name' => $name, 'changed_name' => $now]);

return redirect('/profile');

3 个答案:

答案 0 :(得分:0)

请确保名称和changed_name$fillable array模型中的users中。

答案 1 :(得分:0)

尝试使用

$name = $request->get('name');
$now= date('Y-m-d H:i:s');
$userId = Auth::id();
dd($name . $userId); //tady je to ještě OK
DB::table('users')->where('id', $userId)->where('changed_name', '<', date('Y-m-d H:i:s', strtotime('-30 days')))->update(['name' => $name, 'changed_name' => $now]);
OR
DB::table('users')->where('id', $userId)->where('changed_name', '<', date('Y-m-d H:i:s', strtotime('-1 month')))->update(['name' => $name, 'changed_name' => $now]);

return redirect('/profile');

确保这些字段在模型中可填写。

答案 2 :(得分:0)

  1. 检查changed_name模型中的$fillable是否位于users数组中。
  2. 获取您现在的时间来匹配changed_name的格式