我有一个产品表和一个用户表。我使用以下方法同步多对多的关系:
Product::find($id)->user()->sync([$myVar], false);
如何触摸users表上的时间戳,以便更新updated_at字段?
答案 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();