Wednesday, January 6, 2010

Validate Question

Using the inList validation rule I have 2 questions.

'rule' => array('inList', array('0', '1', '2','3', '4', '5', '6', '7')),
will allow values matching 0 thru 7 anything else is invalid

So my first question is if I created an variable array of values from a find
could i just use 'rule' => array('inList', $myListVariable),

and if that is possible how do i get the $myListVariable into the validation
function?

Or is better to just stick with what im currently doing. For example I have
my country select list and it has a validation 'rule' =>
array('checkCountryValues'),

Model function for the country validation
/*
Form Modification Validation
Checks that entered values for Country are Valid

*/
public function checkCountryValues($data)
{
$valid = false;
$model_table = Inflector::classify($this->useTable);

if (!empty($this->data))
{
// this section matches values against database
$value = array($this->data[$model_table]['country_id']);
$results = array_diff($value, $this->Country->find('list',
array('fields' => 'id')));

if (empty($results))

$valid = true;
}

return $valid;
}

So if anyone messes with the form it returns invalid.

Ideas?

Dave

No comments: