Pim-community-dev: Não é possível substituir a entidade de categoria no Akeneo 3 devido ao tipo de formulário embutido no código

Criado em 3 abr. 2019  ·  4Comentários  ·  Fonte: akeneo/pim-community-dev

Oi,

Estou tentando substituir a entidade Categoria para adicionar uma nova propriedade, usando Akeneo CE 3.0.10, e tenho alguns problemas para fazer isso.

Estou acompanhando a documentação oficial, mais ou menos porque sei que nem sempre está em dia.

Eu substituí a classe Categoria, tudo bem, mas a substituição do formulário Categoria não é possível.
Isso é lógico porque acabei de notar que o parâmetro pim_enrich.form.type.category.class não existe mais! O tipo de formulário usado ( Akeneo\Pim\Enrichment\Bundle\Form\Type\CategoryType ) agora está codificado : -1: nestes dois arquivos YAML:

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

... enquanto em Akeneo 2 estava tudo bem!

Há outro problema sobre a extensão da entidade Categoria: # 9833, não tenho ideia se isso está vinculado ou não.

Você poderia consertar isso em breve?

Rgds,
Perrine

bug documentation

Comentários muito úteis

Olá @ peleq-smile,
Tive o mesmo problema com a entidade de categoria personalizada ao atualizar de 2.3.x para 3.0.x.
No momento, ele não funciona seguindo o guia dos documentos oficiais https://docs.akeneo.com/3.0/manipulate_pim_data/category/add_new_properties_to_a_category.html#define -the-category-form. Como uma solução rápida, decidi substituir a definição de serviço do controlador dentro do meu próprio pacote (por exemplo, em Resources / config / controllers.yml) usando a classe FormType parametrizada (para a qual você provavelmente tem uma substituição - seguindo os 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>' ] ]

certifique-se de que o arquivo yml esteja carregado corretamente em 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 comentários

Oi,

Para seguir em frente, eu atualizei os dois arquivos usando um parâmetro para a classe (no fornecedor, por favor, não me julgue tão rápido ... isso é apenas para um treinamento, não um projeto real ^^), para poder substituí-lo e funciona.

Mas depois disso, não consegui adicionar um elemento de formulário MediaType para minha nova propriedade "imagem" de uma categoria, mas esse é outro problema. Acho que é possível, mas não sei como fazer isso porque não há nenhuma outra amostra da propriedade MediaType com o sistema "old twig front" no Akeneo: '

BR,
Perrine

Olá @ peleq-smile,
Como você resolveu o problema? Eu sou novo no symfony

Olá @ peleq-smile,
Tive o mesmo problema com a entidade de categoria personalizada ao atualizar de 2.3.x para 3.0.x.
No momento, ele não funciona seguindo o guia dos documentos oficiais https://docs.akeneo.com/3.0/manipulate_pim_data/category/add_new_properties_to_a_category.html#define -the-category-form. Como uma solução rápida, decidi substituir a definição de serviço do controlador dentro do meu próprio pacote (por exemplo, em Resources / config / controllers.yml) usando a classe FormType parametrizada (para a qual você provavelmente tem uma substituição - seguindo os 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>' ] ]

certifique-se de que o arquivo yml esteja carregado corretamente em 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...]
    }

Olá @ peleq-smile!

Lançamos uma nova correção de nossa documentação. Ele contém uma correção para a página "como adicionar uma nova propriedade a uma categoria".

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

Por favor, limpe o cache do seu navegador para mostrar a nova versão.

Cumprimentos,

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

ronn0 picture ronn0  ·  4Comentários

pardahlman picture pardahlman  ·  4Comentários

oliverde8 picture oliverde8  ·  3Comentários

kanduvisla picture kanduvisla  ·  3Comentários

lpxavi picture lpxavi  ·  3Comentários