Campo Required no Rules

Eu tenho um aplicaçao que tem o cadastro de lançamento que tem esta regra no rules para validaçao dos campos obrigatorios:

return array(

		array('tipo, descricao, datavencimento,status, valor, clientefornecedor_idclientefornecedor,  usuario_id, conta_idconta, formadepagamento_idformadepagamento,categoria_idcategoria, datacadastro', 'required'),

So que nesta mesma aplicaçao exite varios tipos de lançamento, tipo um lançamento de tranferencia, ele nao precisa de (clientefornecedor_idclientefornecedor e formadepagamento_idformadepagamento) como eu faria para validar isso, pois ja tentei jogar valor null mais nao funfa.

Eu vi que da para determinar o cenario mais como funciona isso alguem poderia me explicar e se isso ajudaria solucionar o meu problema.

Valew

Amigo,

Estava com este problema, resolvi com o uso de cenários de validação, por exemplo:




array('tipo, descricao, datavencimento,status, valor, clientefornecedor_idclientefornecedor,  usuario_id, conta_idconta, formadepagamento_idformadepagamento,categoria_idcategoria, datacadastro', 'required', 'on'=>'cenario1'),

array('tipo, descricao, datavencimento,status, valor, usuario_id, conta_idconta, categoria_idcategoria, datacadastro', 'required','on'=>'cenario2'),



Ai no criar o modelo




$model=new Model('cenario1');



Ai ele válida só o que está na regra do cenario, só lembrando que todas as regras devem estar num cenario, com exceção do ‘safe’. Acredito que ajude se eu intendi bem o problema

Pessoal,

Essa dúvida parece com uma dúvida que eu tenho e pensei então em perguntar aqui mesmo.

Eu tenho um formulário de busca, o usuário pode digitar e-mail ou o número do cpf para buscar um cliente, eu quero fazer uma regra para aceitar que ao menos um dos campos esteja preenchidos. Se o usuário digitar os dois campos não tem problema, se ele digitar somente um também não, só não pode mesmo e não preencher nada para buscar.

Vocês sabem me dizer?

Olá Edson,

Seu formulário de Busca possui ou uma model ou apenas possui uma Controller?

Abs