Просто пример:
/**
* @ORM\Entity
*/
class Menu
{
/**
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @ORM\OneToMany(targetEntity="MenuDish", mappedBy="menu", fetch="EAGER")
*/
private $menu_dishes;
public function __construct()
{
$this->menu_dishes = new ArrayCollection();
}
}
/**
* @ORM\Entity
*/
class MenuDish
{
/**
* @ORM\ManyToOne(targetEntity="Dish", inversedBy="menu_dishes", fetch="EAGER")
*/
private $dish;
}
Затем я пытаюсь получить меню:
$em = $this->getDoctrine()->getManager();
$repo = $em->getRepository(Menu::class);
$menu = $repo->find(1);
Затем я смотрю в XDebug и вижу, что Menu :: $ menu_dishes - это Коллекция сущностей (непрокси) все ок, EAGER работает.НО Меню :: $ menu_dishes :: $ блюдо содержит Прокси!Есть ошибка?$ блюдо с пометкой fetch = EAGER.Когда я отмечаю какое-либо свойство как FETCH = EAGER, я ожидаю, что это свойство не будет содержать прокси-класс.Он мне нужен для борьбы с SoftDelete, реальная проблема в том, что $ dish на самом деле мягко удаляется, и fetch eager может исправить это, установив $ dish как null, но это не работает.Как заставить EAGER работать над свойством блюд?