2011-07-20 19 views
1

Doctrine 1.2の自己参照関係のフィクスチャを定義する際に問題があります。the code from the manualを使用するとします。Doctrine自己参照関係のフィクスチャーの作成方法

私は、このフィクスチャファイルで

User: 
    JohnDoe: 
    username: "john doe" 
    MarkSmith: 
    username: "mark smith" 
    Friends: [ JohnDoe ] 

を試してみましたが、私は教義負荷タスクを実行したときに、私はこのエラーメッセージを得る:

Catchable fatal error: Argument 2 passed to Doctrine_Record::setFriends() must be an instance of Doctrine_Access, none given 

私はFriendReferenceの固定具にユーザーを渡すことでしようとするだろうが、私ドンFriendReferenceは明示的に宣言されていないので、このようなことはできないので、これを行う方法はわかります

FriendReference: 
    First: 
    ???: [ JohnDoe, MarkSmith ] 
0私は2つの冗長を導入するために必要な、この問題の解決策をちょうど見つけた

または

FriendReference: 
    First: 
    User1: JohnDoe 
    User2: MarkSmith 

更新

ここではmanual

--- 
# schema.yml 

# ... 
User: 
# ... 
    relations: 
    # ... 
    Friends: 
     class: User 
     local: user1 
     foreign: user2 
     refClass: FriendReference 
     equal: true 

FriendReference: 
    columns: 
    user1: 
     type: integer 
     primary: true 
    user2: 
     type: integer 
     primary: true 
+0

とても簡単でしたか? – J0HN

+0

@ J0HN確かに、私はスキーマを投稿しました。あなたが私を助けてくれることを願います。それは緊急ではないが、私はまだそれが必要であり、私はこの問題を解決することが非常にうれしい。 – Fabio

+0

さて、「ユーザー」が「質問」にどのように読み込まれると思いますか?フィクスチャサンプルも更新してください。 :) – J0HN

答えて

0

から取られた例スキーマです私のスキーマファイル内の関係。スキーマ内の参照テーブルは、この定義では

FriendReference: 
    columns: 
    user1: 
     type: integer 
     primary: true 
    user2: 
     type: integer 
     primary: true 
    relations: # <-- ADDED RELATIONS 
    User1: 
     class: User 
     local: user1 
    User2: 
     class: User 
     local: user2 

になる私は、このように

FriendReference: 
    First: 
    User1: JohnDoe 
    User2: MarkSmith 

を備品を指定することができますそれはあなたのスキーマのYAMLファイルを投稿できる...