Объект слишком большой при загрузке из базы данных Symfony - PullRequest
0 голосов
/ 05 ноября 2018

Мне нужно загрузить и объект из базы данных и нужно сохранить его в сеансе.

Проблема в том, что загруженный объект слишком велик, и при его печати мой просмотр падает.

Как я могу загрузить только чистый объект из базы данных?

А вот и код:

if ($session->get('record')->getId()) {
    $record = $this->container->get('myweb.record_repository')->findOneById($session->get('record')->getId());
    $session->set('record', $record);
    print_r($session->get('record'));
    die;
}

Ответы [ 2 ]

0 голосов
/ 07 ноября 2018

Вы неправильно выкидываете свой код.

В Symfony есть функция dump().

Вы можете использовать его как в контроллере, так и в ветке.

В контроллере:

//Check if parameter exists first, else you might trigger an error
if($session->has('record') && $session->get('record')->getId() !== null) {
    $record = $this->container->get('myweb.record_repository')->findOneById($session->get('record')->getId());
    $session->set('record', $record);
    dump($session->get('record'));
    exit();
}

В Twig (вы можете передать имя переменной)

{{ dump() }}

Опять же, как я уже говорил в комментарии, скорее всего бессмысленно хранить ваш объект в сессии.
Doctrine будет запрашивать объект большую часть времени.

Допустим, вы делаете это:

$relatedEntity->getRecord();

Doctrine не будет искать объект в сеансе, оно будет запрашивать базу данных.

0 голосов
/ 05 ноября 2018

Попробуйте использовать как массив ... в symfony есть опция Query :: HYDRATE_ARRAY, а затем нормализовать ее до объекта

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...