2012-12-17 63 views
0

我想檢查一個電子郵件/用戶名是否是唯一的控制器。我爲isUnique寫了模型驗證並且它工作。但我也想在控制器中使用它。像cakephp:從控制器檢查isunique

$this->User->validates(array('email'=>'[email protected]')); 

$this->User->checkunique(); 
//is this the right way to write a different function again. 

一些事情,我知道我可以從控制器使用findByEmail並檢查是否返回結果爲空。但我覺得有一個更簡單的方法或cakephp提供的已有方法。如果我錯了,請糾正我,並讓我指出在這方面的正確方法。

感謝, 基蘭

回答

1

你吃過看看庫克書了嗎?有一個關於如何做到這一點很好解釋:

http://book.cakephp.org/2.0/en/models/data-validation/validating-data-from-the-controller.html

概括起來。首先將數據驗證:

$this->User->set($data); 

然後對其進行驗證,並通過字段列表來限制驗證,如果neccessary:

$this->User->validates(array('fieldList' => array('email'))); 

無論你在自定義模型方法包這件事完全由對你來說,儘管從DRY的角度來看,這是一個好主意。