В рамках Laravel у меня есть 2 модели. Во-первых это вопрос модель:Laravel 5.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);
При проверке базы данных, данные в ответах таблицы обновлен, включая столбец updated_at. Однако его родительский элемент (таблица «Вопросы») не обновляет временную метку в столбце updated_at.
Как решить эту проблему? Спасибо.
Только несколько быстрых проверок: ваша таблица 'answers' имеет поле' question_id' (чтобы проверить правильность установки отношения)? ваша таблица 'answers' имеет поле' question' (чтобы проверить, что имя поля не противоречит атрибуту отношения)? – patricus
В моей таблице ответов есть question_id как внешний ключ и не имеет поля вопросов. –
Имеет ли таблица 'answers' поле' touchhes'? Работает ли это, если вы вручную вызываете '$ answer-> question() -> touch()'? – patricus