【问题标题】:how to get associate entity object doctrine2如何获得关联实体对象学说2
【发布时间】:2015-07-24 08:02:39
【问题描述】:

如何获得关联实体对象教义2。我有 "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);

谁能帮我解决这个问题。提前致谢。

【问题讨论】:

    标签: mysql doctrine-orm entity associate


    【解决方案1】:

    您的语法不正确。如果你想使用原生 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

    但是,您最好将表映射为理论中的实体并使用存储库的 findBy 方法。

    示例:

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

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

    注意:上面的sn-ps是为了说明,没有经过测试。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-27
      • 1970-01-01
      • 1970-01-01
      • 2011-12-04
      • 1970-01-01
      • 1970-01-01
      • 2018-07-19
      • 1970-01-01
      相关资源
      最近更新 更多