2010-08-03 53 views
1

这一定是简单的,但我似乎无法在网上找到了答案,也没有弄明白通过试验和错误。访问多到很多场学说

我有一个类甲板和一个类它们之间有多对多的关系。我相当有信心,我加入卡正确甲板(它们被正确地写入到数据库,接线表和所有),但是当我尝试通过访问甲板的卡:

$Deck->Cards 

,它似乎没有返回任何东西。相关架构(在YAML中)位于:

**from Card model** 
    relations: 
     Decks: 
      class: Deck 
      foreignAlias: Cards 
      refClass: DeckCard 
      local: card_id 
      foreign: deck_id 

    **from Deck model** 
    relations: 
     Cards: 
      class: Card 
      foreignAlias: Decks 
      refClass: DeckCard 
      local: deck_id 
      foreign: card_id 

    DeckCard: 
     columns: 
     deck_id: 
      type: integer 
      primary: true 
     card_id: 
      type: integer 
      primary: true 

非常感谢。我确信这很容易,我可以忽略一些简单的事情。

+0

这个教义1 :( – 2014-09-05 08:27:23

回答

1

你是如何获取的$Deck? YAML看起来很好。

该文档给出很好的例子:就拿这个schema。当检索时,你会得到一个对象集合。该provided sample query:。

//User-Group from a m:n relation through UserGroup Model 
$q = Doctrine_Query::create() 
    ->from('User u') 
    ->leftJoin('u.Groups g'); 

$users = $q->fetchArray(); 

foreach ($users[0]['Groups'] as $group) { 
    echo $group['name']; 
} 
+0

非常感谢 - 就像一个魅力 – Justin 2010-08-03 18:01:59

+0

事实上,我遇到了另一个问题,这滋润成果转化为数组,但我想集团当我尝试使用execute()或fetchOne()而不是fetchArray()时,我得到一个内存溢出错误,任何想法都是这样的:谢谢 – Justin 2010-08-03 21:29:21

+0

Nevermind,我明白了,当你编写函数getField ()内的型号。改变了函数的名称,现在事情都工作正常。 – Justin 2010-08-03 21:49:25