Buenas Tardes:
Una duda y si necesito ademas de validar el Rut , comparar que no exista en la Base de datos, ¿como lo puedo hacer ?
este es mi código pero no me funciona, si le saco la función que valida Rut ahí si me compara con la base de datos pero no puedo hacer las dos cosas.
ojalá alguien me pueda ayudar aca les dejo mi codigo del model
public function rules()
{
// NOTE: you should only define rules for those attributes that
// will receive user inputs.
return array(
array('codigo, cliente_rut, cliente_nombre, cliente_direccion, cliente_telefono, email, Cc_customer_cc_cust_id', 'required'),
array('codigo, cliente_telefono, Cc_customer_cc_cust_id', 'numerical', 'integerOnly'=>true),
array('cliente_rut', 'validateRut', 'attributeName'=>'cliente_rut', 'className'=>'cliente', 'allowEmpty'=>'false'),
array('cliente_nombre', 'length', 'max'=>100),
array('cliente_direccion', 'length', 'max'=>1000),
array('email', 'email','message'=>"Formato de Email Incorrecto"),
// The following rule is used by search().
// @todo Please remove those attributes that should not be searched.
array('cliente_id, codigo, cliente_rut, cliente_nombre, cliente_direccion, cliente_telefono, email, Cc_customer_cc_cust_id', 'safe', 'on'=>'search'),
);
}
/**
* @return array relational rules.
*/
public function validateRut($attribute, $params) {
$data = explode('-', $this->cliente_rut);
$evaluate = strrev($data[0]);
$multiply = 2;
$store = 0;
for ($i = 0; $i < strlen($evaluate); $i++) {
$store += $evaluate[$i] * $multiply;
$multiply++;
if ($multiply > 7)
$multiply = 2;
}
isset($data[1]) ? $verifyCode = strtolower($data[1]) : $verifyCode = '';
$result = 11 - ($store % 11);
if ($result == 10)
$result = 'k';
if ($result == 11)
$result = 0;
if ($verifyCode != $result)
$this->addError('cliente_rut', 'El Rut ingresado no es válido.');
}