使用touch()更新laravel中自定义时间戳字段的时间戳

Ron*_*ser 3 php orm eloquent laravel-4

有没有办法touch()用于更新is_online表中字段的时间戳而不是更新laravel中的created_at字段 Eloquent ORM

目前我正在使用

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

Arv*_*vid 6

不,除了内置时间戳之外,不会编写触摸方法来更新任何内容,但是如果您愿意,可以在用户模型中编写自己的函数.像这样的东西

class User extends Eloquent implements UserInterface, RemindableInterface {

    public function touchOnline()
    {
        $this->is_online = $this->freshTimestamp();
        return $this->save();
    }
}
Run Code Online (Sandbox Code Playgroud)

然后用你的旧代码替换

User::find($senderId)->touchOnline();
Run Code Online (Sandbox Code Playgroud)

还有一些代码行,但可能稍微有些可读性.

你可以在这里找到触摸功能后面的代码,如果你好奇.