在单个表单中验证多个模型

时间:2013-01-28 12:57:00

标签: cakephp

我必须使用'CakePHP'以单一形式验证多个模型。 我有2个型号。

发票

public $validate = array(
        'type' => array(
            'rule' =>'notEmpty',
            'message' => 'Select Invoice Type.',
            'required' => true
        ),
        'number' => array(
            'rule' =>'numeric',
            'message' => 'Enter Invoice Number.',
            'required' => true
        ),
        'date' => array(
            'rule' => array('date', 'dmy'),
            'allowEmpty' => true,
            'message' => 'Enter Invoice Date.'
        ),
    );

    public $belongsTo = array(
        'Client' => array(
            'className' => 'Client',
            'foreignKey' => 'client_id'
        ));

客户端

public $validate = array(
        'name' => array(
            'rule' =>'notEmpty',
            'message' => 'Enter Your Name.',
            'required' => true
        ),
        'company' => array(
            'rule' =>'notEmpty',
            'message' => 'Enter Your Company Name.',
            'required' => true
        ),
        'address' => array(
            'rule' =>'notEmpty',
            'message' => 'Enter Your address.',
            'required' => true
        )
    );

    public $hasMany = 'Invoice';

我有一个表单,其中包含' clientName ','地址',' InvoiceNumber '和' InvoiceDate <等字段/ em>的”。 我使用了saveAll(),但它只验证Invoice数据,而不验证Client数据。

2 个答案:

答案 0 :(得分:0)

查看以下答案:https://stackoverflow.com/a/4673403/1110760

  

hasMany模型的字段应该是数组(当与父模型结合使用时),请参见字段名称之间的.0

如果您想在发布时仍然发布表格,我们可以为您提供帮助。

答案 1 :(得分:0)

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

if ($this->ModelName->saveAll(
    $this->request->data, array('validate' => 'only')
)) {
  // validates
} else {
  // does not validate
}