我使用以下代码更新有关组织的标签和其他信息:
Route::put('org/{org}', function(Org $org){
$org->description = Input::get('description');
$org->website = Input::get('website');
$org->save();
$org->tags()->sync(Input::get('tags'));
return Redirect::to('org/'.$org->id)
->with('message', 'Seccessfully updated page!');
});
但是,如果我只更改与此组织关联的标记,则不会更新updated_at字段。我将protected $touches = array('org');
添加到我的Tag模型中,但这似乎只适用于belongsTo关系,而orgs和tags之间的关系是多对多的多态关系。
有没有办法让同步功能自动更新默认的updated_at时间戳?
手动完成,如下所示,即使我的编辑实际上没有改变任何内容,也会更新时间戳:
$org->updated_at = \Carbon\Carbon::now()->toDateTimeString();
$org->save();
答案 0 :(得分:2)
您必须在touches
模型上设置Tag
数组,但它有限制:
Eloquent猜测关系名称,因此只有在名称符合约定时才会起作用。
Organization
型号 - > organizations
关系。
如果你想手动更新时间戳,你可以改用它:
$model->touch();