Here's a custom validation rule that works:
function hasOnePhone() {
$addressTypes = array(
'OrderAddress',
'BillingAddress',
'Customer'
);
foreach ($addressTypes as $addressType):
if (isset($this->data[$addressType])):
if (
$this->data[$addressType]['phone_home'] != null
|| $this->data[$addressType]['phone_work'] !=
null
|| $this->data[$addressType]['phone_cell'] !=
null
):
return true;
endif;
endif;
endforeach;
return false;
}
...called like this in you $validate array:
'phone_home' => array(
...other rules...,
'hasOnePhone' => array(
'rule' => 'hasOnePhone',
'message' => 'You must enter at least one phone
number.',
'last' => true
),
...
),
'phone_work' => array(
...other rules...,
'hasOnePhone' => array(
'rule' => 'hasOnePhone',
'message' => 'You must enter at least one phone
number.',
'last' => true
),
...
),
...and so on.
This actually checks across three models in the data array. You can take out
the [$addressType] foreach loop and simply hard code the name of your model.
Jeremy Burns
Class Outfit
http://www.classoutfit.com
On 13 Jul 2011, at 10:58, Sanfly wrote:
> Hi
>
> Im doing some data validation from a form using my model.
>
> I have a form with phone numbers added: phone_home, phone_mobile,
> phone_work
>
> With my model, I want to validate that at least one of the three is
> filled, but doesnt have to be all three. Is there any way to do that?
>
> --
> Our newest site for the community: CakePHP Video Tutorials
> http://tv.cakephp.org
> Check out the new CakePHP Questions site http://ask.cakephp.org and help
> others with their CakePHP related questions.
>
>
> To unsubscribe from this group, send email to
> [email protected] For more options, visit this group at
> http://groups.google.com/group/cake-php
--
Our newest site for the community: CakePHP Video Tutorials
http://tv.cakephp.org
Check out the new CakePHP Questions site http://ask.cakephp.org and help others
with their CakePHP related questions.
To unsubscribe from this group, send email to
[email protected] For more options, visit this group at
http://groups.google.com/group/cake-php