2014-02-17 58 views
0

如何驗證沒有模型名稱的表單數據。當我打印$this->data時,我以下列數組格式獲取數據。但字段不包含型號名稱。如何驗證cakephp中沒有模型名稱的表單域

Array 
(
    [select_family] => Select 
    [select_cores] => Select 
    [select_color] => Select 
    [select_back_color] => Select 
    [select_panel] => Select 
    [select_design] => Select 
    [select_thickness] => Select 
    [select_edge] => Select 
    [quantity] => 
    [save] => Save 

) 

在此先感謝。

+0

提交的領域將不包含的型號名稱的表格,你必須指定適當的模型,然後寫驗證規則爲您現場 –

+0

你就不能將這些輸入與某個模型相關聯? – arilia

回答

0

您必須使用模型名稱becasue驗證不知道在哪裏和什麼驗證。

Ofcourse您可以設置型號名稱驗證之前(如beforeValidation回調或控制器$this->Model->set()之前)

0

如果從UI中獲取數據,那麼你只需要做到這一點在你的控制器的動作

(
[select_family] => $this->request->data['x'], 
[select_cores] => $this->request->data['x'], 
[select_color] => $this->request->data['x'], 
[select_back_color] => $this->request->data['x'], 
[select_panel] => $this->request->data['x'], 
[select_design] => $this->request->data['x'], 
[select_thickness] => $this->request->data['x'], 
[select_edge] => $this->request->data['x'], 
[quantity] => 
[save] => Save 

) 

其中x是您的UI輸入字段名稱。

0

您可以保存和驗證這些數據結構:

默認:

Array 
(
    [ModelName] => Array 
    (
     [fieldname1] => 'value' 
     [fieldname2] => 'value' 
    ) 
) 

保存多個記錄:

$data = array(
    array('title' => 'title 1'), 
    array('title' => 'title 2') 
); 

所以驗證之前將您的數據陣列以適當的格式/保存它。例如:

$data['ModelName'] = $this->data; 
$this->save($data); 

$data = array($this->data); 
$this->saveMany($data);