Объект имеет emtpy PersistentCollection в представлении списка администраторов сонаты - PullRequest
0 голосов
/ 19 апреля 2020

У меня есть список продуктов с именем, ценой и переопределением цены от нуля до n. Теперь я хотел бы перечислить все мои продукты и показать цену или - если доступно - последнее добавленное изменение цены.

Я пытался использовать собственный шаблон и показать последнее изменение цены, если доступно, иначе цена самого продукта. Но, к сожалению, я не могу получить доступ к переопределениям цен, потому что коллекция пуста. Когда я сбрасываю переменную объекта внутри шаблона, он говорит, что PersistentCollection не инициализирован.

Двор ветки объекта:

enter image description here

Я что-то пропустил? Есть ли более элегантный и прямой способ?

Буду признателен за некоторую помощь и заранее благодарю вас, Мануэль

Администратор продукта:

Вот как я могу использовать свои индивидуальные настройки шаблон.

$listMapper->add('price', null, ['template' => 'product/base_list_field.price.html.twig']);

Сущность продукта:

<?php
    namespace App\Entity;

    use Doctrine\Common\Collections\ArrayCollection;
    use Doctrine\Common\Collections\Collection;
    use Doctrine\ORM\Mapping as ORM;

    /**
     * @ORM\Entity(repositoryClass="App\Repository\ProductRepository")
     */
    class Product
    {
        /**
         * @ORM\Id()
         * @ORM\GeneratedValue()
         * @ORM\Column(type="integer")
         */
         private $id;

         /**
         * @ORM\Column(type="string", length=255)
         */
         private $name;

         /**
         * @ORM\OneToMany(targetEntity="App\Entity\PriceOverride", mappedBy="product", orphanRemoval=true)
         */
         private $priceOverrides;

         /**
         * @ORM\Column(type="decimal", precision=10, scale=2)
         */
         private $price;
    ...

Сущность PriceOverride:

    <?php

        namespace App\Entity;

        use Doctrine\Common\Collections\ArrayCollection;
        use Doctrine\Common\Collections\Collection;
        use Doctrine\ORM\Mapping as ORM;

        /**
         * @ORM\Entity(repositoryClass="App\Repository\PriceOverrideRepository")
         */
        class PriceOverride
        {
            /**
             * @ORM\Id()
             * @ORM\GeneratedValue()
             * @ORM\Column(type="integer")
             */
            private $id;

            /**
             * @ORM\Column(type="decimal", precision=10, scale=2)
             */
            private $newPrice;
    ...
...