'driverNegotiation' => array(self::HAS_MANY, 'DriverNegotiation', 'driver_id')
這會爲我的Driver
對象生成一個negotiations
的數組。該數組從零開始索引。有沒有辦法將的值設置爲數組鍵,比方說team_id
可以從DriverNegotiation
找到?更改HAS_MANY關係產生的陣列
'driverNegotiation' => array(self::HAS_MANY, 'DriverNegotiation', 'driver_id')
這會爲我的Driver
對象生成一個negotiations
的數組。該數組從零開始索引。有沒有辦法將的值設置爲數組鍵,比方說team_id
可以從DriverNegotiation
找到?更改HAS_MANY關係產生的陣列
我不完全確定你的意思是「設置用作數組鍵」的值。但是,如果你的意思是得到一個陣列從一個由DriverNegotiation
表值中的一個索引,而不是數字的driverNegotiation關係回,那麼你可以將index
參數添加到關係:
'driverNegotiation' => array(self::HAS_MANY, 'DriverNegotiation', 'driver_id', 'index'=>'team_id')
要知道,無論TEAM_ID衝突你只會得到一個結果,這幾乎相當於做一個小組。
更新
按您的評論有關從關係拉下來,它不是我做過,但也可能是可行的。我的猜測是,在with
使用'together'=>true
拉下關係在一起,然後指定一個index
:
'index'=>'`baseNegotiation`.`team_id`'
如果不工作,我不知道接下來要去哪裏,並在無法測試分鐘,但我也會嘗試Yii Forums,因爲開發人員非常擅長在那裏迴應。
這就是我的意思,謝謝!但現在我有另一個問題。實際上,這個team_id位於base_negotiaton(對不起,我忘記了),它與DriverNegotiation「baseNegotiation」=> array(self :: BELONGS_TO,'BaseNegotiation','base_negotiation_id')有關。有沒有一種方法可以將它用作關鍵字? – Gessle
隨着你的幫助和幫助http://stackoverflow.com/questions/5702847/create-a-relation-of-more-than-three-tables-in-yii我得到的錯誤:'Property「DriverNegotiation.baseNegotiation.team_id 「沒有定義。」那麼我從一開始如何擺脫DriverNegotiation? – Gessle
現在我意識到這個問題可以通過MANY_MANY關係來解決...... :) – Gessle
將[['index'=>'team_id''](http://www.yiiframework.com/doc/api/1.1/CHasManyRelation#index-detail)添加到關係規範中。 – DCoder