Doctrine orm 未捕获异常';条令\ORM\orException';带有消息';EntityManager已关闭
如何将条令实体管理器传递给某个类构造函数 例如,我在文件_someAction.php中设置并创建实体管理器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构造函
$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);