2012-11-13 39 views
0

我從蛋糕1.3升級到最新蛋糕的過程就是2在CakePHP訪問的usermodel 2.2.3

我以前從App組件作爲訪問用戶模型:

$this->Auth->userModel-> 

但是,該領域已不存在了。

是否有其他選擇嗎?

我也試過

App::uses('User', 'Model'); 
$user = new User(); 

,但我得到的錯誤

Class 'AppModel' not found 

訪問用戶模型的任何替代方式?

回答

1

你想通過訪問用戶(或任何)模型來做什麼?

如果在一個控制器可以添加到控制器的$uses變量模型:

public $uses = array('User'); 

您還可以通過「跳過模型協會」訪問任何模型。例如,如果你在UsersController和您希望使用的Costume模型,其中User hasMany CostumeCostume不在控制器的$uses屬性,你可以這樣做:

$this->User->Costume->find(); 

模型協會的存在是強制性的,否則它不管用。這是可能的,因爲用戶模型與其相關的任何模型都有內部關聯。

由於組件包裝控制器,你應該能夠做到這一點也有或應該有從那裏,你可以打電話到控制器的參考:User->Costume->find();但在Component你從Controller不是將數據傳遞給它的更好試圖從中調用一個模型。

+0

我試圖訪問與用戶模型關聯的模型的數據,就像在您的示例中嘗試訪問用戶 - >服裝 - >查找()。但是,這是AppController上的一種方法,所以我無法保證我當前在UsersController上,因此用戶模型不一定會綁定到控制器。 – Ezequiel

+0

用戶模型將始終受限於UsersController。如果你試圖訪問AppController中的方法,那麼它將在Users模型中可用,因爲它擴展了AppController,所以:'$ this-> User-> methodName()'將起作用。在'Component'中,你最好從'Controller'傳遞數據,而不是試圖從它調用模型。 –

+0

好吧,現在我明白了。解決方案是在應用程序控制器上使用「public $ uses」。謝謝 – Ezequiel