从数据库symfony加载时对象太大

时间:2018-11-05 15:14:19

标签: symfony symfony-3.4

我需要数据库中的负载和对象,并且需要将其存储在session中。

问题在于所加载的对象太大,以至于我在打印该对象时浏览器就会崩溃。

如何从数据库中仅加载纯对象?

这是代码:

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 :(得分:0)

尝试将其水化为数组...在symfony中,可以选择Query :: HYDRATE_ARRAY然后将其规范化为对象

答案 1 :(得分:0)

您没有正确转储代码。

使用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() }}

再次,正如我在评论中所说,将对象存储在会话中很可能毫无意义。
教科书大部分时间都会查询对象。

让我们说你这样做:

$relatedEntity->getRecord();

Doctrine不会调查对象的会话,它将查询数据库。