Как я могу отфильтровать поля из ассоциации Doctrine toMany? - PullRequest
0 голосов
/ 28 июня 2019

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

У меня есть поле многоугольника в базе данных, которое я хочу выбирать только один раз, когда это необходимо.Для коллекций Это поле не должно загружаться или даже отображаться в результирующем разделе SELECT * FROM, только если выбрано напрямую.Это то, что я искал.Чтобы свести данные сбора к подмножеству полей для повышения производительности sql.

Например, если БД удаленная, я не хочу передавать как можно меньше информации с сервера sql на сервер php.

В случае геометрических данных эти отдельные поля могут оказаться огромными.

Я знаю, что могу фильтровать коллекции по факту.Я использую Apigility с FilterInterface уже.Это помогает минимизировать данные, передаваемые с php-сервера на клиент, но не с mysql-сервера на php-сервер.

/**
 * @ORM\OneToMany(targetEntity="ContactSearchprofile", mappedBy="contact", cascade={"all"}, orphanRemoval=false)
 */
private $searchprofiles;
public function getSearchprofiles() {return $this->searchprofiles;} // will select everything

Внутренне он должен делать только repo->select("The, Fields, I, Want")->where('id = :contact_id'); вместо select("*").

...