假设我在 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));
...我收到一个 PHP 错误:
Severity: Notice
Message: Object of class Models\User to string conversion
Filename: DBAL/Connection.php
Line Number: 574
这不应该发生,对吧?如果我使用 QueryBuilder 和 setParameter('user', $user) 它会按预期工作。
最佳答案
允许按关系查询,但您必须在其中传递标识符。目前还不支持按对象查询,只会在 2.1 中实现。
<?php
// $em instanceof EntityManager, $user instanceof Models\User
$comments = $em->getRepository('Models\Comment')
->findBy(array('user' => $user->getId(), 'public' => true));
关于php - Doctrine2 findBy关系对象触发字符串转换错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5951386/