【问题标题】:Laravel adding to modelLaravel 添加到模型
【发布时间】:2021-06-23 13:15:33
【问题描述】:

我正在尝试进行选择,如果选择不存在,请创建它,无论哪种方式,添加时间戳“last_login”

            $user = User::find($auth['acc_id']);

            if (!$user) {
                $user = User::setRawAttributes([
                    'id' => $auth['acc_id'],
                    'username' => $auth['username'],
                    'password' => $auth['password'],
                ]);
            }
            $user->last_login = date('Y-m-d H:i:s', time());

我期待它能够工作,但我猜 setRawAttributes 不是我想要的? 因为我不想创建一个新用户然后选择它来添加last_login

【问题讨论】:

  • 你试过 updateOrCreate 方法吗?
  • @Dren 不确定这对我有什么帮助?我不想立即处理它。我想创建它,编辑它,然后 $user->saveOrFail();
  • 您想为现有用户添加 last_login 吗?但是如果具有 acc_id 的用户不存在,您要创建它吗?对吗?

标签: php laravel model


【解决方案1】:

这个操作调用Upsert在文档中查看:

https://laravel.com/docs/8.x/eloquent#upserts

$user = User::updateOrCreate([
    'acc_id' => $auth['acc_id'],
    'username' => $auth['username'],
    'password' => $auth['password'],
], [
    'last_login' => date('Y-m-d H:i:s', time()),
]);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-09-13
    • 2015-05-30
    • 2020-02-10
    • 2014-08-17
    • 2015-12-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多