【问题标题】:Laravel can't update data MySQLLaravel 无法更新数据 MySQL
【发布时间】:2020-02-19 11:06:04
【问题描述】:

一切都在 dd 中正确显示,但在 table 中没有任何变化。有谁知道为什么?

$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');

【问题讨论】:

  • 您将changed_nameCarbon::now()-&gt;subdays(60)-&gt;toDateTimeString() 进行比较,我认为应该是$name。您的观点可能会有所不同。
  • @DilipHirapara 可能changed_name 是他们改名的日期。
  • changed_name 是时间戳,您应该每 60 天只能更改一次名称

标签: php sql database laravel controller


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    尝试使用

    $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');
    

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

    【讨论】:

      【解决方案3】:
      1. 检查changed_name 是否位于users 模型中的$fillable 数组中。
      2. changed_name 的格式与获取您的时间相匹配

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-07-20
        • 1970-01-01
        • 2021-08-31
        • 2015-04-18
        • 2021-10-02
        • 2016-06-12
        相关资源
        最近更新 更多