2014-02-17 134 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);