Pim-community-dev: No se puede anular la entidad de categoría en Akeneo 3 debido al tipo de formulario codificado de forma rígida

Creado en 3 abr. 2019  ·  4Comentarios  ·  Fuente: akeneo/pim-community-dev

Hola,

Estoy tratando de anular la entidad Categoría para agregar una nueva propiedad, usando Akeneo CE 3.0.10, y tengo algunos problemas para hacerlo.

Estoy siguiendo la documentación oficial, más o menos porque sé que no siempre está actualizada.

Anulé la clase Categoría, está bien, pero no es posible anular el formulario Categoría.
¡Eso es lógico porque acabo de notar que el parámetro pim_enrich.form.type.category.class ya no existe! El tipo de formulario utilizado ( Akeneo\Pim\Enrichment\Bundle\Form\Type\CategoryType ) ahora está codificado : -1: en estos dos archivos YAML:

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

... mientras que en Akeneo 2 estaba bien!

Hay otro problema sobre la extensión de la entidad Categoría: # 9833, no tengo idea si esto está vinculado o no.

¿Podrías arreglar esto muy pronto?

Rgds,
Perrine

bug documentation

Comentario más útil

Hola @ peleq-smile,
Tuve el mismo problema con la entidad de categoría personalizada al actualizar de 2.3.xa 3.0.x.
A partir de ahora, no funciona siguiendo la guía de los documentos oficiales https://docs.akeneo.com/3.0/manipulate_pim_data/category/add_new_properties_to_a_category.html#define -the-category-form. Como solución rápida, decidí anular la definición de servicio del controlador dentro de mi propio paquete (por ejemplo, en Resources / config / controllers.yml) usando la clase FormType parametrizada (para la cual probablemente tenga una anulación, siguiendo los documentos):

    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>' ] ]

asegúrese de que el archivo yml esté correctamente cargado en Your \ Custom \ Bundle \ DependencyInjection \ Extension.php:

    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...]
    }

Todos 4 comentarios

Hola,

Para seguir adelante, actualicé ambos archivos usando un parámetro para la clase (en proveedor, no me juzgue tan rápido ... esto es solo para una capacitación, no un proyecto real ^^), para poder anularlo y funciona.

Pero después de eso no pude agregar un elemento de formulario MediaType para mi nueva propiedad "imagen" de una categoría, pero este es otro problema. Supongo que es posible, pero no sé cómo hacerlo porque no hay otra muestra de la propiedad MediaType con el sistema "old twig front" en Akeneo: '

BR,
Perrine

Hola @ peleq-smile,
¿Cómo resolvió el problema? Soy nuevo en symfony

Hola @ peleq-smile,
Tuve el mismo problema con la entidad de categoría personalizada al actualizar de 2.3.xa 3.0.x.
A partir de ahora, no funciona siguiendo la guía de los documentos oficiales https://docs.akeneo.com/3.0/manipulate_pim_data/category/add_new_properties_to_a_category.html#define -the-category-form. Como solución rápida, decidí anular la definición de servicio del controlador dentro de mi propio paquete (por ejemplo, en Resources / config / controllers.yml) usando la clase FormType parametrizada (para la cual probablemente tenga una anulación, siguiendo los documentos):

    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>' ] ]

asegúrese de que el archivo yml esté correctamente cargado en Your \ Custom \ Bundle \ DependencyInjection \ Extension.php:

    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...]
    }

¡Hola @ peleq-smile!

Lanzamos una nueva corrección de nuestra documentación. Contiene una solución para la página "cómo agregar una nueva propiedad a una categoría".

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

Por favor, limpie la caché de su navegador para mostrar la nueva versión.

Saludos,

¿Fue útil esta página
0 / 5 - 0 calificaciones