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

标签 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));

...我收到一个 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/

相关文章:

php - Doctrine 2 像在数据库中一样使用表列,而不是 camelCase

php - 间接修改重载属性 App\Category::$thesizes 没有效果

symfony - 如何将 KnpPaginator 手动计数移动到 Repository 类?

javascript - 数据未从 ajax POST 返回

php - Uploadify 不传递变量,Session 问题?

database - 使用 Zend Framework 2 和 DoctrineORMModule 连接到多个数据库

php - 如何在 Doctrine 中使用 CONVERT() 函数 MySQL

php - 如何使用 .htaccess 加载默认索引文件以获取 url 中的可变目录结构

php - PHP : log errors in file but don't display them to POST/GET requests