我需要数据库中的负载和对象,并且需要将其存储在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;
}
答案 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不会调查对象的会话,它将查询数据库。