PointsController.php on line 150:
App\Entity\PointsCities {#709 ▼
-id: "1"
-city: "City #1"
-region_id: "2"
-type: 1
}
Допустим есть repository, которая при запросе findAll возвращает некую коллекцию объектов класса PointsController. Но! Возвращаемые entity содержат только индексы(FKeys) на другие таблицы, из которых необходимо подтянуть, к примеру) строковые значения varchar. Я конечно могу написать SQL запрос при помощи QB, однако.. тогда возвращаемый результат будет типа array, и придётся перебирать весь массив, при этом еще и заполнять вектор из сущностей PointsController, в чем я не вижу смысла. Писать дополнительные запросы на извлечение данных со связанных таблиц - это еще +2 SQL лишних запроса, вообще абсурд полнейший. По сути одним запросом надо вытянуть данные смежных таблиц для region_id и type, которые в этих таблицах имеют конкретные имена типа varchar..
Тело сущности примерно выглядит так
class PointsCities
{
/**
* @ORM\Id
* @ORM\GeneratedValue
* @ORM\Column(type="bigint", options={"unsigned" : true})
*/
private $id;
/**
* @ORM\Column(type="string", length=50)
*/
private $city;
/**
* @ORM\Column(type="bigint", nullable=true, options={"unsigned" : true})
* @ORM\ManyToOne(targetEntity="PointsRegions")
* @ORM\JoinColumn(name="region_id", referencedColumnName="id")
*/
private $region_id;
/**
* @ORM\Column(type="smallint", options={"unsigned" : true})
* @ORM\OneToOne(targetEntity="PointsCityTypes")
*/
private $type;
........
}
Модель базы данных выглядит так