1

モデルを構築し、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 は 2 つのトレイト間で競合するメソッドであると想定しています。

HasMorphToManyEvents と HasMorphedByManyEvents の両方を同じモデルで動作させるために、ここから何をすべきかについて本質的に迷っています。 パッケージの元

4

1 に答える 1