Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Tenho uma associação belongsTo entre dois Models (Funcionário belongsTo Pessoa) e estou tendo um pequeno inconveniente no momento da validação.
O model Pessoa é responsável por validar o campo Nome e o model Funcionário é responsável por validar o campo Registro.
O problema é que a validação é realizada em etapas diferentes para cada campo. Se eu deixar ambos os campos em branco só será validado o primeiro, neste caso o campo Pessoa.nome. O segundo campo só passará pela validação se o primeiro já estiver validado.
Bem, eu gostaria que a validação ocorresse simultâneamente para todos os campos, independente da associação.
Já tentei validar o campo Pessoa.nome dentro do model Funcionário, mas não consegui.
Existe alguma maneira de organizar essa validação?
>
#model person
<?php
class Person extends AppModel {
var $name = 'Person';
var $useDbConfig = 'test';
var $validate = array(
'name' => array(
'notempty' => array(
'rule' => array('notempty'),
//'message' => 'Your custom message here',
//'allowEmpty' => false,
'required' => true,
//'last' => false, // Stop validation after this rule
//'on' => 'create', // Limit validation to 'create' or 'update' operations
),
),
);var $hasMany = array(
'Functionary' => array(
'className' => 'Functionary',
'foreignKey' => 'person_id',
'dependent' => false,
'conditions' => '',
'fields' => '',
'order' => '',
'limit' => '',
'offset' => '',
'exclusive' => '',
'finderQuery' => '',
'counterQuery' => ''
)
);
}
?>
O que eu não estava fazendo era colocar os relacionamentos nos dois models. Só tinha colocado o belongsTo no Profissionais e não tinha colocado o hasMany no Pessoas. Deve ser isso. Vou testar logo mais.
Muito obrigado pela ajuda.
CREATE TABLE people(
id INT( 5 ) UNSIGNED NOT NULL AUTO_INCREMENT ,
name VARCHAR( 100 ) NOT NULL ,
PRIMARY KEY ( id )
id INT( 5 ) UNSIGNED NOT NULL AUTO_INCREMENT ,
age int(5) not null,
person_id INT( 5 ) UNSIGNED NOT NULL ,
PRIMARY KEY ( id )
);
#model person
<?php
class Person extends AppModel {
//The Associations below have been created with all possible keys, those that are not needed can be removed
#model functionary
<?php
class Functionary extends AppModel {
//The Associations below have been created with all possible keys, those that are not needed can be removed
#controller person
#em add e edit usei a função saveAll para salvar person e todos os modelos associados a ele.
#view add.ctp de person
Deixei os dois campos em branco e a validação funcionou para os dois: ambos ficaram vermelhos.