Проблемы при настройке действия шоу в Sonata Admin.Ошибка при попытке настроить отображаемую метку поля отображения с помощью параметра метки - PullRequest
0 голосов
/ 08 февраля 2019

Я пытаюсь настроить showAction.Я хочу настроить отображаемую метку поля отображения, используя тип «текст» для категорий в моем коде.Посмотрите на мой код:

public function configureShowFields(ShowMapper $show)
{
    $show->with("Day")
        ->add("name", "text", array("label" => "Name"))
        ->add("categories", "text", array("label" => "Categories"));
    $show->end();
}

Это свойство «категории» с геттерами и сеттерами:

    /**
 * @var Category[]
 *
 * @ORM\ManyToMany(targetEntity="App\Entity\Category\Category", cascade={"persist"})
 * @ORM\JoinTable(name="day_category",
 *     joinColumns={@ORM\JoinColumn(name="day_id", referencedColumnName="id")},
 *     inverseJoinColumns={@ORM\JoinColumn(name="category_id", referencedColumnName="id")})
 */
private $categories;


/**
 * @return Category[]
 */
public function getCategories()
{
    return $this->categories;
}

/**
 * @param Category[] $categories
 */
public function setCategories(array $categories): void
{
    $this->categories = $categories;
}

Я хочу настроить метку категории с типом текста, но если я сделаю этоЯ получаю сообщение об ошибке:

Возникла исключительная ситуация во время рендеринга шаблона ("Предупреждение: nl2br () ожидает, что параметр 1 будет строкой, задан объект").

Вот картинка с тем, что я хочу для "Категории": Вот то, что я хочу для категорий

Ответы [ 2 ]

0 голосов
/ 08 февраля 2019

В Sonata Admin есть шаблон для многих со многими ассоциациями, которые можно использовать с showMapper.

. Вы можете просто немного изменить эту строку:

->add('categories', null, [
    'template' => '@SonataAdmin/CRUD/Association/show_many_to_many.html.twig'
])

, и связанные категории будутбудет отображаться как неупорядоченный список.

Необходимо также указать метод __toString в сущности Category.

0 голосов
/ 08 февраля 2019

Так как category является свойством ManyToMany, вы не можете отобразить это как текст, как вы ожидаете.Администратор Sonata отображает это поле как неупорядоченный список.

В этом поле нельзя использовать тип text .Если вам нужно изменить метку, попробуйте следующее.

public function configureShowFields(ShowMapper $show)
{
    $show->with("Day")
        ->add("name", "text", array("label" => "Name"))
        ->add("categories", null, array("label" => "Categories"));
    $show->end();
}
...