1
我使用CakePHP 2.5錯誤條件betweeen模型,需要加入Vehicle
表Address
表,其中vei_id
是外鍵CakePHP的避免
我有一個是產生了兩個模型錯誤條件一個查找操作: Vehicle
和Address
。
Address
有vei_id
列,這是加入車輛表的外鍵。
該查詢生成vehicle_id
作爲加入兩個表的列,probem是該列甚至不存在。
我已經使用vei_id
列映射了兩個模型。
我該如何避免這種情況?似乎cakephp嘗試猜測連接列,即使我已經寫了使用我想要的列的條件。
//Vehicle Model
public $hasOne = array(
'Address' => array(
'className' => 'Address',
'conditions' => array('Vehicle.vei_id = Address.vei_id'),
'foreignkey' => false
)
//Address Model
public $belongsTo = array(
'Vehicle' => array(
'className' => 'Vehicle',
'conditions'=> array('Vehicle.vei_id=Address.vei_id'),
'foreignKey' => 'vei_id'
),
);
//At vehiclecontroller
$data = $this->Vehicle->find('first', array(
'conditions' => array('Vehicle.vei_id' => $vehicleId),
'contain' => array(
'Address' => array('conditions'=> array('Address.vei_id'=>'Vehicle.vei_id',
'Vehicle.vei_id' => $vehicleId
),
)),
));
它生成此行:
LEFT JOIN Address ON (
Address.vehicle_id = Vehicle.vei_id
AND Address.vei_id = 'Vehicle.vei_id'
AND Vehicle.vei_id = 123
)
如果此列不存在:
Address.vehicle_id = Vehicle.vei_id
爲什麼你使用Vehicle.vei_id?車輛表中有vei_id列嗎?看起來應該是Vehicle.id。 –
這裏有一個內部約定來命名主鍵,vei_id列存在,vehicle_id不存在。所以我唯一的選擇就是嘗試將cakephp應用到之前的現有關係模型 –