更新updated_at时间戳?

时间:2015-06-25 16:42:09

标签: laravel eloquent laravel-5

我有一个产品表和一个用户表。我使用以下方法同步多对多的关系:

Product::find($id)->user()->sync([$myVar], false);

如何触摸users表上的时间戳,以便更新updated_at字段?

2 个答案:

答案 0 :(得分:3)

我认为您真正想要的是在您的产品上设置触摸阵列。

如果您将此protected $touches = array('user');添加到产品模型中,则父级(在本例中为用户)时间戳会在您sync()时随时自动更新。

实施例

class Products extends Eloquent {

    protected $touches = array('user');

    public function user()
    {
        return $this->belongsTo('User');
    }

}

答案 1 :(得分:0)

我认为当您使用sync方法时,产品和用户之间存在多对多的关系。我假设$myVar是单用户ID,因为sync方面的第一个变量是相关模型的ID数组。我认为您只想触摸身份User的{​​{1}}。 请关注,

$myVar

以下将更新与Product相关的所有用户,这是不对的。因为您之前可能已经附加了许多用户,并且更新旧的关联用户是不正确的。

Product::find($id)->user()->sync([$myVar], false);
User::find($myVar)->touch();