2015-04-02 58 views
0

我仍在使用蛋糕2.5.3,但我無法找到更新中的任何相關內容。我的問題是,這些屬於與另一個模型中的vitualfields碰撞。

首先我爲項目的模式:

class Project extends AppModel { 
public $belongsTo = array(
    'Responsibleperson' => array(
     'className' => 'User', 
     'foreignKey' => 'responsibleperson_id' 
    ), 
    'Creator' => array(
     'className' => 'User', 
     'foreignKey' => 'creator_id' 
    ), 
); 
} 

負責人及qho創建的項目可能不同的人,但他們都是用戶。

這工作正常。真。

Lateron我的用戶模型中添加以下內容:

public $virtualFields = array(
    'fullname' => 'CONCAT(User.prename, " ", User.name)' 
); 

現在幾乎所有的$這個 - >項目 - >找到()控制器調用失敗

Column not found: 1054 Unknown column 'User.vorname' in 'field list' 

當你看mysql-query,你會發現查詢沒有接管已更改的型號名稱,並且仍然對用戶進行了嚴格的限制...

SELECT 
`Project`.`id`, 
`Project`.`projectname`, 
`Project`.`responsibleperson_id`, 
`Project`.`creator_id`, 
`Responsibleperson`.`id`, 
`Responsibleperson`.`username`, 
`Responsibleperson`.`prename`, 
`Responsibleperson`.`name`, 
(CONCAT(`User`.`prename`, " ", `User`.`name`)) AS `Responsibleperson__fullname`, 
`Creator`.`id`, 
`Creator`.`username`, 
`Creator`.`prename`, 
`Creator`.`name`, 
(CONCAT(`User`.`prename`, " ", `User`.`name`)) AS `Creator__fullname` 
FROM 
`database`.`projects` AS `Project` 
LEFT JOIN 
`database`.`users` AS `Responsibleperson` 
ON 
(`Project`.`responsibleperson_id` = `Responsibleperson`.`id`) 
LEFT JOIN 
`swdevel`.`plantbook_users` AS `Creator` 
ON 
(`Project`.`creator_id` = `Creator`.`id`) 
WHERE 
(`Project`.`projektname` LIKE '%Searchsometing%') 

讓虛擬領域的「用戶」離開,只寫CONCAT(預先命名,「」,名稱),會讓它變得非常棒。我如何教導蛋糕改變虛擬領域的模型名稱?

是否有任何解決方案,除了使數據庫中的視圖有一個「第二」模型?

非常感謝您的幫助。

回答