laravel - 在多态关系中更新子模型时更新父时间戳

标签 laravel polymorphism eloquent laravel-5.1

在 Laravel 5.1 中,我有两个模型。城市模型和照片模型。
City 和 Photo 之间存在多态关系。 更新城市照片时

$city->photos()->updateOrCreate($attributes,$values)

子时间戳更新。但父模型的时间戳(在本例中为 City)不会相应更新,我应该手动调用

$city->touch()

在 Laravel 中触摸子模型时如何更新父模型的时间戳?

最佳答案

对于多态关系

class Photo extends Eloquent {

  protected $touches = ['city'];

  public function city() {
    return $this->morphTo() // add this function if not already done
  }
}

class City extends Eloquent {

  public function photos() {
    return $this->morphMany(App\Photo::class, 'city');
  }
}

在这种情况下,当照片更新时,它会触及他的 parent (在这种情况下是城市)。

希望有帮助。

关于laravel - 在多态关系中更新子模型时更新父时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32300323/

相关文章:

php - 从相关模型 laravel 获取 id

laravel - 查询withTrash、软删除laravel

php - 如何在 Composer 库中保留修改以供将来的私有(private)项目使用?

mysql - 数据库太大 - 存储为行或序列化数据?

没有 RTTI 的 C++ 双重分派(dispatch) "extensible"

laravel - 为什么我的 Laravel Eloquent 访问器没有出现在响应中?

laravel - 如何使用 "leftJoin"为 Laravel Eloquent ORM 中的列添加别名

php - DB::table 与 Eloquent 模型 - Laravel 数据库种子

java - 访问父类方法和变量

c++ - 我明白为什么了,但是 Virtual Functions/VTables 到底是如何允许通过指针访问正确的函数的呢?