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

php – Symfony Doctrine与链接表的多对多关系

发布时间:2020-12-13 17:04:44 所属栏目:PHP教程 来源:网络整理
导读:情况: 我有3个表:学生,地址,StudentAddressLink如下注意*不是完整的yaml文件,但你明白了 Student: column: id: blah blah name: blah blah Address: column: id: ~ street: ~ StudentAddressLink: column: id:~ student_id: ~ address_id: ~ relations: St
情况:

我有3个表:学生,地址,StudentAddressLink如下注意*不是完整的yaml文件,但你明白了

Student:  
 column:  
  id: blah blah  
  name: blah blah  
Address:  
 column:  
  id: ~  
  street: ~  
StudentAddressLink:  
 column:  
  id:~  
  student_id: ~  
  address_id: ~  
 relations:  
  Student:  
    local: student_id  
    foreign: id  
   Address:  
     local: address_id  
     foreign: id

从Student对象我想得到相关的“地址街”
目前我必须这样做:

foreach($student->StudentAddressLink as $address)
{
    echo $address->getStreet();
}

这有效…但我有一种方法可以做一些让链接表透明的东西,像这样神奇的东西:

foreach($student->Addresss as $address)
{
  echo $address->getStreet();
}

任何方向都会很棒!

解决方法

如果你想要多对多的关系,你需要使用类似代码 here(对于symfony的过时版本但仍然正确).

这涉及将refClass设置为StudentAddressLink,允许您想要的透明关系.然后,您将能够使用$student-> Address [0] – > getStreet.那里的文档可以比我更好地解释!

编辑我认为您的架构需要看起来像这样:

Student:  
  columns:   
    name: string
  relations:
    Address:
      refClass: StudentAddressLink
      local: student_id
      foreign: address_id
Address:  
  columns:  
    street: ~
StudentAddressLink:  
  columns:  
    student_id: ~  
    address_id: ~

(编辑:李大同)

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

    推荐文章
      热点阅读