为什么updating
为空时会忽略updated
和getDirty()
模型事件?
如果模型没有变化,并不意味着我没有更新其关系。
更新
以下代码:
public function updating(Eloquent $model)
{
$history = new ContentHistory($model->getOriginal());
$history->added_on = new DateTime;
$model->history()->save($history);
}
如果getDirty()
为空,则永远不会触发。我已将$touches = ['content']
添加到ContentHistory
模型中,但无效。
答案 0 :(得分:0)
更新任何相关模型时,如果要在更新子模型时更新父级的时间戳,则只需使用protected $touches = array('modelname');
属性。例如,如果您拥有Post
模型并且其子模型为Comment
,并且您要更新Post
模型(仅updated_at
时间戳字段),则添加$touches
模型中的Comment
属性/数组,并在该数组中添加Parent模型的名称,如:
class Comment extends Eloquent {
protected $touches = array('post');
public function post()
{
return $this->belongsTo('Post');
}
}