在Eloquent中更新自定义时间戳字段

时间:2016-03-28 18:44:03

标签: php laravel

我想更新自定义时间戳字段,因此编写了此函数

public function touchDelivery() {
    $this->delivery = $this->freshTimestamp();
    return $this->save();
}

public function pushSuccess($id) {
    return Message::where('id', '=', $id)->touchDelivery();
}

但是当执行Laravel抱怨时:

  

调用未定义的方法Illuminate \ Database \ Query \ Builder :: touchDelivery()

1 个答案:

答案 0 :(得分:1)

我猜这个代码在你的Eloquent文件中。 return Message::where('id', '=', $id)->touchDelivery();

存在问题

首先,您需要获取所有消息,然后对于每条消息,您需要调用该方法。这样的事情。

public function pushSuccess($id) {
   $messages = Message::where('id', '=', $id)->get();
   foreach($messages as $message)
         $message->touchDelivery();
   ...
}

请告诉我这是否适合您。