加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – Doctrine2 Native Query ManyToMany

发布时间:2020-12-13 16:19:36 所属栏目:PHP教程 来源:网络整理
导读:我已经阅读了有关本机SQL查询的Doctrine2文档. 它没有讨论由ManyToMany关系加入的实体. 我没有想到如何处理,任何想法或例子. 解决方法 您只需手动将连接表添加到sql中.在Doctrine手册的第14章中扩展示例: $rsm = new ResultSetMapping;$rsm-addEntityResult
我已经阅读了有关本机SQL查询的Doctrine2文档.
它没有讨论由ManyToMany关系加入的实体.
我没有想到如何处理,任何想法或例子.

解决方法

您只需手动将连接表添加到sql中.在Doctrine手册的第14章中扩展示例:

$rsm = new ResultSetMapping;
$rsm->addEntityResult('User','u');
$rsm->addFieldResult('u','id','id');
$rsm->addFieldResult('u','name','name');
$rsm->addJoinedEntityResult('Address','a','u','address');
$rsm->addFieldResult('a','address_id','id');
$rsm->addFieldResult('a','street','street');
$rsm->addFieldResult('a','city','city');

$sql = 'SELECT u.id,u.name,a.id AS address_id,a.street,a.city FROM users u ' .
       'INNER JOIN address__user j ON u.id = j.user '.
       'INNER JOIN address a ON a.id = j.address '.
       'WHERE u.name = ?';
$query = $this->_em->createNativeQuery($sql,$rsm);
$query->setParameter(1,'romanb');

$users = $query->getResult();

此示例假定您的连接表具有其键的字段地址和用户.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读