0

テーブルがあります:ドライバー、ドライバー_ネゴシエーション、ベース_ネゴシエーション、およびチーム

DriverController モデルでは、ドライバーがネゴシエートしている team_id (base_negotiation にあります) を取得したいと考えています。

ドライバーモデルには次のものがあります:

'driverNegotiation' => array(self::HAS_ONE, 'DriverNegotiation', 'driver_id')

そして DriverNegotiation では:

'baseNegotiation' => array(self::BELONGS_TO, 'BaseNegotiation', 'base_negotiation_id')

DriverController では、次のようなものを構築しています。

$criteria=new CDbCriteria(array(
    'condition' => 'baseNegotiation.team_id=13',
    'with' => 'driverNegotiation',
    'together' => true,

));

しかし、私は得る:

Column not found: 1054 Unknown column 'baseNegotiation.team_id' in 'where clause'. 
The SQL statement executed was: SELECT COUNT(DISTINCT `t`.`id`) FROM `driver` `t` 
LEFT OUTER JOIN `driver_negotiation` `driverNegotiation` ON 
(`driverNegotiation`.`driver_id`=`t`.`id`) WHERE (baseNegotiation.team_id=13) 

したがって、driver_nagotiation テーブルからすべてを取得できますが、それ以上のテーブルからは何も取得できません。

正しいものを取得するために結合を使用する必要がありますか、それともより良い方法がありますか?

4

1 に答える 1

2
'with' => 'driverNegotiation.baseNegotiation'

これでうまくいきました。

于 2012-12-29T15:59:35.420 に答える