在Doctrine中访问多对多字段

时间:2010-08-03 02:53:27

标签: php doctrine

这一定很简单,但我似乎无法在网上找到答案,也无法通过反复试验来解决问题。

我有一个班级甲板和一个班级,它们之间有很多关系。我非常有信心我正在将卡片正确地添加到卡片中(它们被正确地写入数据库,联结表和所有内容),但是当我尝试使用以下方式访问卡片时:

$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

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

1 个答案:

答案 0 :(得分: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'];
}