Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从数据库symfony加载时,对象太大_Symfony_Symfony 3.4 - Fatal编程技术网

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

从数据库symfony加载时,对象太大,symfony,symfony-3.4,Symfony,Symfony 3.4,我需要从数据库中加载对象并将其存储在会话中 问题是加载的对象太大,当我打印它时,我的浏览会被压碎 如何从数据库中加载纯对象 代码如下: if ($session->get('record')->getId()) { $record = $this->container->get('myweb.record_repository')->findOneById($session->get('record')->getId()); $sessi

我需要从数据库中加载对象并将其存储在会话中

问题是加载的对象太大,当我打印它时,我的浏览会被压碎

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

代码如下:

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;
}

试着像数组一样水合。。。在symfony中,可以选择查询::hydrome_数组,然后将其规范化为对象

如果您没有正确转储代码

有了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中(可以传递变量名)

同样,正如我在评论中所说,在会话中存储对象很可能毫无意义。
条令在大多数情况下都会查询对象

假设您这样做:

$relatedEntity->getRecord();

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

如何将查询返回的对象转换为原始对象形式?Alex Prab建议使用数组,而不是对象。。。你需要你的全部物品吗?或者只是一些财产?你想要实现什么?存储在会话中可能不是适合您需要的解决方案…我的对象已经与其他对象相关,例如:$record->getPersonnalDetails()->getName();我需要得到整个对象…你使用什么数据库管理系统?我在我的symfony项目中使用了条令,在接收到作为数组的对象后,我编写了自己的规范化器,在这里我用接收到的数据构建了我的对象。。。您也不必处理整个对象,因此您只能使用您需要的对象数据!再说一次,你到底想要实现什么?我第一次看到有人想在会话中存储大量数据……你的问题不够清楚。如何转储数据?在细枝中还是在控制器中?添加一些代码。。。我们需要看看你是如何做的来理解你的问题。我自己在开发时转储了很多数据,但从未发生过。第二,为什么要将整个对象存储到会话中?如果,就像我在Alex Pab answer的评论中读到的那样,您的对象与其他对象相关,那么最好每次都获得一个新的副本。@如果我将数据转储到控制器中,我需要从数据库中获取对象(与许多其他对象相关的对象)并将其存储在会话中,客户端需要它。。。
$relatedEntity->getRecord();