标签: doctrine-orm

EntityManager已关闭

[Doctrine\ORM\ORMException]   
The EntityManager is closed.  
Run Code Online (Sandbox Code Playgroud)

在插入数据后出现DBAL异常后,EntityManager关闭,我无法重新连接它.

我试过这样但是没有得到联系.

$this->em->close();
$this->set('doctrine.orm.entity_manager', null);
$this->set('doctrine.orm.default_entity_manager', null);
$this->get('doctrine')->resetEntityManager();
$this->em = $this->get('doctrine')->getEntityManager();
Run Code Online (Sandbox Code Playgroud)

任何人都知道如何重新连接?

orm entitymanager symfony doctrine-orm

74
推荐指数
8
解决办法
8万
查看次数

Doctrine Listener与Subscriber

我正在使用Symfony2框架,并想知道何时使用Doctrine订阅者而不是听众.Doctrine 为听众提供的文档非常清晰,但是订阅者却被掩盖了.Symfony的食谱入门类似.

symfony doctrine-orm

73
推荐指数
3
解决办法
2万
查看次数

如何使用具有比较标准的findBy方法

我需要使用比较标准的"魔术查找器"findBy方法(不仅仅是准确的标准).换句话说,我需要做这样的事情:

$result = $purchases_repository->findBy(array("prize" => ">200"));
Run Code Online (Sandbox Code Playgroud)

这样我就可以获得奖金超过200的所有购买.

php symfony doctrine-orm

72
推荐指数
4
解决办法
9万
查看次数

如何使用symfony2 doctrine查询构建器选择不同的查询?

我有这个symfony代码,它检索与项目上的博客部分相关的所有类别:

$category = $catrep->createQueryBuilder('cc')
    ->Where('cc.contenttype = :type')
    ->setParameter('type', 'blogarticle')
    ->getQuery();

$categories = $category->getResult();
Run Code Online (Sandbox Code Playgroud)

这有效,但查询包含重复项:

Test Content
Business
Test Content
Run Code Online (Sandbox Code Playgroud)

我想DISTINCT在我的查询中使用该命令.我见过的唯一例子要求我编写原始SQL.我想尽可能地避免这种情况,因为我试图保持所有代码相同,因此它们都使用Symfony2/Doctrine提供的QueryBuilder功能.

我尝试distinct()像这样添加到我的查询中:

$category = $catrep->createQueryBuilder('cc')
    ->Where('cc.contenttype = :type')
    ->setParameter('type', 'blogarticle')
    ->distinct('cc.categoryid')
    ->getQuery();

$categories = $category->getResult();
Run Code Online (Sandbox Code Playgroud)

但它会导致以下错误:

致命错误:调用未定义的方法Doctrine\ORM\QueryBuilder :: distinct()

如何告诉symfony选择distinct?

php query-builder symfony doctrine-orm

71
推荐指数
3
解决办法
11万
查看次数

如何将实体重新保存为Doctrine 2中的另一行

假设我有实体$e.有没有通用的方法将它存储为另一行,它将具有相同的实体数据但是另一个主键?

为什么我需要这个:我正在实现某种时态数据库模式,而不是更新行我只需要创建另一个.

php doctrine temporal-database doctrine-orm

71
推荐指数
1
解决办法
4万
查看次数

doctrine:QueryBuilder vs createQuery?

在Doctrine中,您可以通过两种方式创建DQL:

EntityManager :: createQuery:

$query = $em->createQuery('SELECT u FROM MyProject\Model\User u WHERE u.id = ?1');
Run Code Online (Sandbox Code Playgroud)

QueryBuilder:

$qb->add('select', 'u')
   ->add('from', 'User u')
   ->add('where', 'u.id = ?1')
   ->add('orderBy', 'u.name ASC');
Run Code Online (Sandbox Code Playgroud)

我想知道区别是什么,我应该使用哪个?

doctrine-orm

67
推荐指数
3
解决办法
5万
查看次数

主义2 +无符号值

是否可以unsigned integer在Doctrine 2中指定列类型?

php doctrine-orm

65
推荐指数
4
解决办法
3万
查看次数

Symfony2中ObjectManager和EntityManager之间的区别?

什么之间的区别Doctrine\Common\Persistence\ObjectManager,并Doctrine\ORM\EntityManager在自定义表单类型使用的时候吗?

我可以使用$this->em->getRepository()和来获取存储库$this->om->getRepository().

class MyFormType extends \Symfony\Component\Form\AbstractType
{

    /**
     * @var Doctrine\ORM\EntityManager
     */
    protected $em;

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

 }
Run Code Online (Sandbox Code Playgroud)

代替:

class MyFormType extends \Symfony\Component\Form\AbstractType
{

    /**
     * @var Doctrine\Common\Persistence\ObjectManager
     */
    protected $om;

    public function __construct(Doctrine\Common\Persistence\ObjectManager $om)
    {
        $this->om = $om;
    }

 }
Run Code Online (Sandbox Code Playgroud)

doctrine symfony-forms symfony doctrine-orm

65
推荐指数
1
解决办法
2万
查看次数

为什么我在引入属性类型提示时突然收到“在初始化之前不能访问类型化属性”错误?

我已经更新了我的类定义以使用新引入的属性类型提示,如下所示:

class Foo {

    private int $id;
    private ?string $val;
    private DateTimeInterface $createdAt;
    private ?DateTimeInterface $updatedAt;

    public function __construct(int $id) {
        $this->id = $id;
    }


    public function getId(): int { return $this->id; }
    public function getVal(): ?string { return $this->val; }
    public function getCreatedAt(): ?DateTimeInterface { return $this->createdAt; }
    public function getUpdatedAt(): ?DateTimeInterface { return $this->updatedAt; }

    public function setVal(?string $val) { $this->val = $val; }
    public function setCreatedAt(DateTimeInterface $date) { $this->createdAt = $date; }
    public function setUpdatedAt(DateTimeInterface $date) { …
Run Code Online (Sandbox Code Playgroud)

php type-hinting doctrine-orm php-7 php-7.4

62
推荐指数
2
解决办法
5万
查看次数

doctrine:设置与id的关联而不是对象实例

是否可以设置两个对象之间的关联,例如article,comment如下所示:

comment.setArticle(10) // 10 is the id of article
Run Code Online (Sandbox Code Playgroud)

自动生成的setArtcicle方法当作参数对象文章,但也许​​有一些技巧可以做到这一点?

从性能的角度来看,这对我来说非常重要 - 我希望在我想设置关联时总是避免进行SQL调用.在我的情况下会有很多这样的不必要的查询.

doctrine-orm

61
推荐指数
1
解决办法
1万
查看次数