Doctrine orm 未捕获异常';条令\ORM\orException';带有消息';EntityManager已关闭

Doctrine orm 未捕获异常';条令\ORM\orException';带有消息';EntityManager已关闭,doctrine-orm,entitymanager,Doctrine Orm,Entitymanager,如何将条令实体管理器传递给某个类构造函数 例如,我在文件_someAction.php中设置并创建实体管理器$em。 在同一个文件中,我实例化了该类,并将实体管理器传递给构造函数,但em在该类中不起作用。我越来越 致命错误:未捕获异常“条令\ORM\orException”,消息为“EntityManager已关闭” 类dealErrCl } _someAction.php 如果我在_someAction.php文件中使用这个$em,它会工作,但是如果我尝试将它传递给某个dealErrCl构造函

如何将条令实体管理器传递给某个类构造函数

例如,我在文件_someAction.php中设置并创建实体管理器
$em
。 在同一个文件中,我实例化了该类,并将实体管理器传递给构造函数,但em在该类中不起作用。我越来越

致命错误:未捕获异常“条令\ORM\orException”,消息为“EntityManager已关闭”

类dealErrCl }

_someAction.php
如果我在_someAction.php文件中使用这个$em,它会工作,但是如果我尝试将它传递给某个dealErrCl构造函数,它会给出致命错误。

这意味着刷新过程中出现错误,从而关闭实体管理器

可能存在许多可能的错误:

1) 在非null字段上设置null

2) 对字段名使用保留关键字

POSTGRE保留字:

MYSQL保留字:


因此,最好总是将所有冲洗物封闭在一个try-catch块内

这意味着刷新过程中出现错误,关闭实体管理器

可能存在许多可能的错误:

1) 在非null字段上设置null

2) 对字段名使用保留关键字

POSTGRE保留字:

MYSQL保留字:


因此,最好总是将所有冲洗物封闭在一个try-catch块内

似乎解决方案就在这里:我的错误是
desc
keyord,这是保留的。而且不应该用作fiedl名称。解决方法似乎如下:我的错误是
desc
keyord,这是保留的。而且不应该被用作一个封地名称。
use Doctrine\ORM\EntityManager;
use someNamespace\LogErr;

class dealErrCl {
 private $em; //entity manager to save error to the entity

public function __construct( \Doctrine\ORM\EntityManager $em ) {
        $this->em = $em; 
}

public function flush($errArr) {

    $this->le = new LogErr(); 
    
    if( isset($errArr['title']) ) {
        $this->le->setTitle($errArr['title']); 
    } 
/*...*/

    $this->em->persist($this->le);
    $this->em->flush();
include DbCon.php; // configures doctrine and creates $em. If i use this em in this file, it works, but if i tryt to pass it to some class constructor, it gives Fatal error.

use LogBundle\Components\ErrC\dealErrCl; 
$dealErrIn = new dealErrCl($em);