Hi,
I’ve spent hours running against this wall… I’m pretty sure I made a mistake somewhere, but I just don’t get it…
I have an SQL table:
CREATE TABLE `policy` (
`game` int(11) NOT NULL,
`playerLeft` int(11) NOT NULL,
`playerRight` int(11) NOT NULL,
`type` enum('War','Trade','NAP','Pact','Alliance') NOT NULL
)
‘game’ references game
.id
, playerLeft and playerRight reference player
.id.
Inside the Policy-Class I have a self-join (fkConfirmed) defined as
return array(
...
'fkGame' => array(self::BELONGS_TO, 'Game', 'game'),
...
'fkConfirmed' => array(self::HAS_ONE, 'Policy', 'game,playerRight,playerLeft'),
)
The reason behind this relation is that if a policy between users has been confirmed, there will be two records in the table. Once with playerLeft, playerRight, once swapped.
To check for this confirmation I need to find out if a record with reversed player ids is present.
When I try to get the contents of fkConfirmed, either by using with(‘fkConfirmed’) or by accessing the member, I get an error about a missing column Policy.‘id’. This is because ‘game’ relates to the table ‘Game’, column ‘id’. I can see the logic behind this, but this is not what I want.
Is there any way I can get what I’m looking for?
Thanks in advance,
Olli