更新子级后,Laravel 5.2不会更新父级的时间戳

时间:2016-07-16 04:01:50

标签: laravel eloquent touches

在Laravel框架中,我有2个模型。首先是问题模型:

class Question extends Model
{
     protected $table = 'questions';
     protected $fillable = [...];
     public function answers()
     {
         return $this->hasMany('App\Models\Answer');
     }
     ...
}

和答案模型:

class Answer extends Model
{
     protected $table = 'answers';
     protected $fillable = [...];
     protected $touches = ['question'];
     public function question()
     {
         return $this->belongsTo('App\Models\Question');
     }
     ...
}

我用代码更新了答案模型中的一些属性:

$answer = $answer->select('id')
            ->where('id', $id)
            ->firstOrFail();
$answer->update($data);

当我检查数据库时,Answers表中的数据会更新,包括updated_at列。但是,其父(问题表)不会更新updated_at列中的时间戳。

如何解决这个问题?谢谢。

1 个答案:

答案 0 :(得分:0)

只需按照以下内容执行基本操作:

Question::find($questionId)->touch();

这将更新您要执行的timestatmp。