[SOLVED] Foreign key problem

Hello.

I am trying to create a new website. Currently i am very pleased with working with yii. Still having some Foreign key issues.

My problem is this:

CDbCommand failed to execute the SQL statement: SQLSTATE[42S22]: Column not found: 1054 Unknown column ‘players.playerid’ in ‘where clause’

The database is from a game im trying to setup.

a "Base" allways has an owner but not allways an occupier.

Any ideas on how to handle it in the relations when i relate to all the bases the player has?

Data structures and relations:

Players model:

return array(

"bases" => array(self::HAS_MANY,"Bases","playerid",


    'condition'=> "players.playerid = bases.ownerid"


),


"occupied_bases" => array(self::HAS_MANY,"Bases","playerid"),


"fleets" => array(self::HAS_MANY,"Fleet","ownerid")

);

Bases model:

return array(

'planet' => array(self::BELONGS_TO,"Planets", "baseid"),


'owner' => array(self::BELONGS_TO, "Players","ownerid"),


'occupier' => array(self::HAS_ONE,"Players","occupierid"),


'commander' => array(self::HAS_ONE,"Commanders","commanderid"),


'structures' => array(self::HAS_MANY,"Structures","baseid")

);

Players SQL:

CREATE TABLE players (

playerid int(11) NOT NULL,

… (more unnessesary coloums)

UNIQUE KEY playerid (playerid)

) ENGINE=InnoDB DEFAULT CHARSET=latin1;

Bases SQL:

CREATE TABLE bases (

baseid int(11) NOT NULL,

name varchar(30) NOT NULL,

ownerid int(11) DEFAULT ‘0’,

occupierid int(11) DEFAULT ‘0’,

commanderid int(11) DEFAULT ‘0’,

UNIQUE KEY baseid (baseid),

KEY ownerid (ownerid),

KEY occupierid (occupierid),

KEY commanderid (commanderid)

) ENGINE=InnoDB DEFAULT CHARSET=latin1;

ALTER TABLE bases

ADD CONSTRAINT bases_ibfk_14 FOREIGN KEY (commanderid) REFERENCES commanders (commanderid),

ADD CONSTRAINT bases_ibfk_11 FOREIGN KEY (baseid) REFERENCES planets (baseid),

ADD CONSTRAINT bases_ibfk_12 FOREIGN KEY (ownerid) REFERENCES players (playerid),

ADD CONSTRAINT bases_ibfk_13 FOREIGN KEY (occupierid) REFERENCES players (playerid);

Yii creates alias ‘t’ for main table, so try to use t.playerid.

Giving same error:

CDbCommand failed to execute the SQL statement: SQLSTATE[42S22]: Column not found: 1054 Unknown column ‘t.playerid’ in ‘where clause’

I found the problem. Still i had tried that before.

return array(

"bases" => array(self::HAS_MANY,"Bases","ownerid",


),


"occupied_bases" => array(self::HAS_MANY,"Bases","playerid"),


"fleets" => array(self::HAS_MANY,"Fleet","ownerid")

);

the only thing changed is playerid is set to ownerid…