2008-10-15 115 views
3

我在CakePHP中有一個沒有表格的模型,名爲Upload。我在這個模型中爲一個名爲source_id的字段進行了驗證。在沒有表格的模型中驗證字段(CakePHP)

我已經得到了構建一個好看$這個數據,給了我一個很好格式化集,包括一種形式:

$this->data['Upload']['source_id'] 

不過,我已經設置了驗證規則似乎並沒有運行在所有。我複製從另一個模型,其中它的工作,這個驗證規則,所以我相信,它的工作原理:

var $validate = array(
     'source_id' => array(
     rule' => 'numeric', 
     'required' => true, 
     'allowEmpty' => false, 
     'message' => 'Error!.' 
    ) 
); 

可你不是因爲缺少一個數據庫表的模型驗證領域?

的形式使用上傳模型,並提交到另一控制器的操作方法。

CakePHP 1.2,PHP/MySQL 5,XAMPP。

回答

10

我很笨。您必須觸發驗證檢查,可以使用save()或

$this->Upload->set($this->data); 
$this->Upload->validates(); 

立即工作。

4

您也可以通過設置$ _schema陣列,像這樣的數據庫結構:

var $useTable = false; 

var $_schema = array(
    'name' =>array('type'=>'string', 'length'=>100), 
    'email' =>array('type'=>'string', 'length'=>255), 
    'phone' =>array('type'=>'string', 'length'=>20), 
    'subject' =>array('type'=>'string', 'length'=>255), 
    'message' =>array('type'=>'text') 
); 
+0

+1很酷的功能,我沒注意到 – kaklon 2011-02-11 19:32:28