Doctrine2 findBy关系对象触发字符串转换错误

pdd*_*pdd 18 php doctrine-orm

假设我在Doctrine2中有两个相互关联的实体,Models\User和Models\Comment.如果我在Doctrine 2.0.0中这样做...

<?php
// $em instanceof EntityManager, $user instanceof Models\User
$comments = $em->getRepository('Models\Comment')
    ->findBy(array('user' => $user, 'public' => true));
Run Code Online (Sandbox Code Playgroud)

...我收到一个PHP错误:

严重性:注意

消息:类的对象模型\用户到字符串转换

文件名:DBAL/Connection.php

行号:574

这不应该发生,对吧?如果我使用QueryBuilder和setParameter('user',$ user),它将按预期工作.

beb*_*lei 31

允许按关系查询,但您必须在那里传递标识符.目前尚不支持按对象查询,只会将其设为2.1.

<?php
// $em instanceof EntityManager, $user instanceof Models\User
$comments = $em->getRepository('Models\Comment')
->findBy(array('user' => $user->getId(), 'public' => true));
Run Code Online (Sandbox Code Playgroud)

  • @beberlei:教条2.1.6仍然存在这个问题,这是正常的吗? (2认同)