редактируемые сонаты many_to_one редактируемые не работают - PullRequest
0 голосов
/ 07 сентября 2018

Определение сущности

 /**
     * @var ArrayCollection|Keyword
     * @ORM\ManyToMany(targetEntity="Mea\KeywordsBundle\Entity\Keyword",cascade={"persist"})
     * @ORM\JoinTable(
     *      joinColumns={@ORM\JoinColumn(name="log_id", referencedColumnName="id")},
     *      inverseJoinColumns={@ORM\JoinColumn(name="keyword_id", referencedColumnName="id")}
     * )
     */
    protected $tags;

Определение администратора

protected function configureListFields(ListMapper $listMapper)
    {

      ->add('tags','many_to_one',[
                'editable' => true,
                'multiple'=>true,
                'class' => Keyword::class,
            ])

Результат enter image description here

Поле недоступно для редактирования - теги отображаются как href для редактирования одного тега.

Я ищу в шаблонах сонаты вендор / sonata-project / admin-bundle / src / Resources / views / CRUD / base_list_field.html.twig - это поле имеет редактируемое значение true, но xEditableType имеет значение null.

1 Ответ

0 голосов
/ 10 сентября 2018

Как вы можете видеть в репозитории github, поле списка многие-к-одному вообще не редактируется.

editable => true ничего не делает, а multiple => true бесполезен, потому что это отношение к одному ...

Вот код этого поля списка:

https://github.com/sonata-project/SonataAdminBundle/blob/3.x/src/Resources/views/CRUD/Association/list_many_to_one.html.twig

{% block field %}
    {% if value %}
        {% set route_name = field_description.options.route.name %}
        {% if not field_description.options.identifier|default(false)
            and field_description.hasAssociationAdmin
            and field_description.associationadmin.hasRoute(route_name)
            and field_description.associationadmin.hasAccess(route_name, value)
            and field_description.associationadmin.id(value)
        %}
            <a href="{{ field_description.associationadmin.generateObjectUrl(route_name, value, field_description.options.route.parameters) }}">
                {{ value|render_relation_element(field_description) }}
            </a>
        {% else %}
            {{ value|render_relation_element(field_description) }}
        {% endif %}
    {% endif %}
{% endblock %}
...