簡體   English   中英

Symfony + Doctrine與鏈接表的多對多關系

[英]Symfony + Doctrine Many to Many relations with Linking Tables

情況:

我有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();
}

任何方向都會很棒!

如果你想要多對多的關系,你需要使用像這里的代碼(對於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: ~  

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM