我正在构建一个模型并使用 chelout/laravel-relationship-events 来捕获事件。
我有一个看起来像这样的模型:
class Taxonomyterm extends Model
{
use HasMorphToManyEvents, HasMorphedByManyEvents {
HasMorphedByManyEvents::newMorphToMany insteadof HasMorphToManyEvents;
}
...
public function images()
{
return $this->morphToMany(Image::class, 'imageable')->withTimestamps();
}
public function items()
{
return $this->morphedByMany(Item::class, 'taxonomytermable')->orderBy('taxonomytermables.id')->withPivot('id')->withTimestamps();
}
...
protected static function boot()
{
parent::boot();
static::morphToManyAttached(function ($relation, $parent, $ids, $attributes) {
if( $relation == 'images') {
dd('Attached MorphToMany');
}
}
static::morphedByManyAttached(function ($relation, $parent, $ids, $attributes) {
if( $relation == 'items') {
dd('Attached MorphedByMany');
}
}
}
包的维护者向我指出了 PHP文档,但似乎找不到正确的方法来完成这项工作。
我还假设 newMorphToMany 是两个特征之间发生冲突的方法。
我基本上不知道从这里做什么才能让 HasMorphToManyEvents 和 HasMorphedByManyEvents 在同一个模型上工作。 这是来自的包裹