如何获得关联实体对象doctrine2

时间:2015-07-24 08:02:39

标签: mysql doctrine-orm entity associate

如何获得关联实体对象doctrine2。我有“userId”的值,现在我想获得“apartmentId”的值。但它显示了一个像----一样的错误 执行'SELECT user_publishers(publisherId)VALUES(347)'时发生异常:

SQLSTATE [42000]:语法错误或访问冲突:1064 SQL语法中有错误;检查与MySQL服务器版本对应的手册,以便在第1行的“VALUES(347)”附近使用正确的语法

这就是我试图获得“apartmentId”---

的价值
$selectData = "SELECT user_apartments(apartmentId) VALUES ($userId) ";

        $selectData = $em->getConnection()->prepare($selectData); 
        $selectData->execute();

        print_r($selectData);

enter image description here

任何人都可以帮我解决这个问题。提前致谢。

1 个答案:

答案 0 :(得分:0)

您的语法不正确。如果你想使用本机sql查询,你应该遵循以下几点:

示例:

<?php
use Doctrine\ORM\Query\ResultSetMapping;

$rsm = new ResultSetMapping();
// build rsm here

$query = $entityManager->createNativeQuery('SELECT id, name, discr FROM users WHERE name = ?', $rsm);
$query->setParameter(1, 'romanb');

$users = $query->getResult();

来源: http://doctrine-orm.readthedocs.org/en/latest/reference/native-sql.html

您最好将您的表作为一个实体映射到doctrine中,并使用存储库的findBy方法。

示例:

$em = new EntityManager();
$criteria = array('name' => 'someValue', 'status' => 'enabled');
$result = $em->getRepository('SomeEntity')->findBy($criteria);

来源: https://stackoverflow.com/a/8432032/2853903

注意: 上面的代码段是指示并且未经过测试。