我在为Doctrine 1.2中的自引用关系定义装置时遇到了麻烦,假设我使用the code from the manual,如何为此编写灯具?
我试过这个夹具文件
User:
JohnDoe:
username: "john doe"
MarkSmith:
username: "mark smith"
Friends: [ JohnDoe ]
但是当我运行doctrine load任务时,我得到了以下错误信息:
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 ]
或
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 :(得分: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
这很简单......