有没有一种方法可以使用touch()更新表中is_online字段的时间戳,而不是更新 laravel created_at中的Eloquent ORM字段

目前我正在使用

User::where('id',$senderId )->update(array('is_online' => date('Y-m-d H:i:s')));

最佳答案

不,touch方法不是用于更新除内置时间戳记之外的任何东西,但是如果需要,您可以在用户模型中编写自己的函数。像这样

class User extends Eloquent implements UserInterface, RemindableInterface {

    public function touchOnline()
    {
        $this->is_online = $this->freshTimestamp();
        return $this->save();
    }
}

然后将您的旧代码替换为
User::find($senderId)->touchOnline();

多几行代码,但可读性更高。

如果您好奇的话,可以find the code behind the touch function here

关于php - 使用touch()更新laravel中自定义时间戳字段的时间戳,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27597465/

10-16 15:23