Pim-community-dev: Kategorie-Entität kann in Akeneo 3 aufgrund des hartcodierten Formulartyps nicht überschrieben werden

Erstellt am 3. Apr. 2019  ·  4Kommentare  ·  Quelle: akeneo/pim-community-dev

Hallo,

Ich versuche, die Kategorieentität zu überschreiben, um mithilfe von Akeneo CE 3.0.10 eine neue Eigenschaft hinzuzufügen, und habe einige Probleme damit.

Ich folge mehr oder weniger der offiziellen Dokumentation, weil ich weiß, dass sie nicht immer aktuell ist.

Ich habe die Kategorie-Klasse überschrieben, das ist in Ordnung, aber das Überschreiben des Kategorie-Formulars ist nicht möglich.
Das ist logisch, weil ich gerade bemerkt habe, dass der Parameter pim_enrich.form.type.category.class nicht mehr existiert! Der verwendete Formulartyp ( Akeneo\Pim\Enrichment\Bundle\Form\Type\CategoryType ) ist jetzt fest codiert : -1: in diese beiden YAML-Dateien:

  • Akeneo/Pim/Enrichment/Bundle/Resources/config/form_types.yml
  • Akeneo/Pim/Enrichment/Bundle/Resources/config/controllers.yml

... während es in Akeneo 2 OK war !

Es gibt ein weiteres Problem beim Erweitern der Kategorieentität: # 9833, ich habe keine Ahnung, ob dies verknüpft ist oder nicht.

Könnten Sie das bitte in Kürze beheben?

Rgds,
Perrine

bug documentation

Hilfreichster Kommentar

Hi @ peleq-smile,
Ich hatte das gleiche Problem mit der benutzerdefinierten Kategorieentität beim Upgrade von 2.3.x auf 3.0.x.
Ab sofort funktioniert es nicht, wenn Sie der Anleitung aus den offiziellen Dokumenten https://docs.akeneo.com/3.0/manipulate_pim_data/category/add_new_properties_to_a_category.html#define -the-category-form folgen. Als schnelle Lösung habe ich beschlossen, die Dienstdefinition des Controllers in meinem eigenen Bundle (z. B. in Resources / config / controller.yml) mithilfe der parametrisierten FormType-Klasse zu überschreiben (für die Sie wahrscheinlich eine Überschreibung eingerichtet haben - gemäß den Dokumenten):

    pim_enrich.controller.category_tree.product:
        class: 'Akeneo\Pim\Enrichment\Bundle\Controller\Ui\CategoryTreeController'
        arguments:
            - '<strong i="9">@event_dispatcher</strong>'
            - '@pim_user.context.user'
            - '@pim_catalog.saver.category'
            - '@pim_catalog.remover.category'
            - '@pim_catalog.factory.category'
            - '@pim_catalog.repository.category'
            - '@oro_security.security_facade'
            - { related_entity: product, form_type: '%pim_enrich.form.type.category.class%', acl: pim_enrich_product, route: pim_enrich }
            - '@pimee_security.repository.category_access'
            - '@security.token_storage'
        calls:
            - [ setContainer, [ '<strong i="10">@service_container</strong>' ] ]

Stellen Sie sicher, dass die yml-Datei korrekt in Your\Custom\Bundle\DependencyInjection\Extension.php geladen ist:

    public function load(array $configs, ContainerBuilder $container)
    {
        $loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));
        $loader->load("controllers.yml");
        [load your other configs...]
    }

Alle 4 Kommentare

Hallo,

Um fortzufahren, habe ich beide Dateien mithilfe eines Parameters für die Klasse aktualisiert (im Hersteller beurteilen Sie mich bitte nicht so schnell ... dies ist nur für ein Training kein echtes Projekt ^^), um es überschreiben zu können und es funktioniert.

Danach konnte ich kein MediaType-Formularelement für meine neue "image" -Eigenschaft einer Kategorie hinzufügen, aber dies ist ein weiteres Problem. Ich denke, es ist möglich, aber ich weiß einfach nicht, wie das geht, weil es in Akeneo kein anderes Beispiel für die MediaType-Eigenschaft mit dem "alten Zweigfront"-System gibt:'

BR,
Perrine

Hi @ peleq-smile,
Wie haben Sie das Problem gelöst? Ich bin neu in der Symfonie

Hi @ peleq-smile,
Ich hatte das gleiche Problem mit der benutzerdefinierten Kategorieentität beim Upgrade von 2.3.x auf 3.0.x.
Ab sofort funktioniert es nicht, wenn Sie der Anleitung aus den offiziellen Dokumenten https://docs.akeneo.com/3.0/manipulate_pim_data/category/add_new_properties_to_a_category.html#define -the-category-form folgen. Als schnelle Lösung habe ich beschlossen, die Dienstdefinition des Controllers in meinem eigenen Bundle (z. B. in Resources / config / controller.yml) mithilfe der parametrisierten FormType-Klasse zu überschreiben (für die Sie wahrscheinlich eine Überschreibung eingerichtet haben - gemäß den Dokumenten):

    pim_enrich.controller.category_tree.product:
        class: 'Akeneo\Pim\Enrichment\Bundle\Controller\Ui\CategoryTreeController'
        arguments:
            - '<strong i="9">@event_dispatcher</strong>'
            - '@pim_user.context.user'
            - '@pim_catalog.saver.category'
            - '@pim_catalog.remover.category'
            - '@pim_catalog.factory.category'
            - '@pim_catalog.repository.category'
            - '@oro_security.security_facade'
            - { related_entity: product, form_type: '%pim_enrich.form.type.category.class%', acl: pim_enrich_product, route: pim_enrich }
            - '@pimee_security.repository.category_access'
            - '@security.token_storage'
        calls:
            - [ setContainer, [ '<strong i="10">@service_container</strong>' ] ]

Stellen Sie sicher, dass die yml-Datei korrekt in Your\Custom\Bundle\DependencyInjection\Extension.php geladen ist:

    public function load(array $configs, ContainerBuilder $container)
    {
        $loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));
        $loader->load("controllers.yml");
        [load your other configs...]
    }

Hi @ peleq-smile!

Wir veröffentlichen einen neuen Fix unserer Dokumentation. Es enthält einen Fix für die Seite "Wie man einer Kategorie eine neue Eigenschaft hinzufügt".

https://docs.akeneo.com/3.0/manipulate_pim_data/category/add_new_properties_to_a_category.html

Bitte leeren Sie Ihren Browser-Cache, um die neue Version anzuzeigen.

Grüße,

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen