Validatiociones antre de guardar

hola nuevamente, necesito realizar unas validaciones antes de guardar mi registro pero no estoy muy segura de como debería hacerlo, necesitaria validar que uno de los campos que estoy guardando no este previamente almacenado en otro registro, estube leyendo y solo se me ocurren 2 formas de hacerlo,

1.- en mi controlador antes de ejecutar la función save(), hacer la consulta a la bd buscando si el atributo existe, y si no existe ejecuto save().

algo como




                        $model->attributes=$_POST['Canal'];

			$criteria = new CDbCriteria;

                        $criteria->condition = 'patronId='.$model->patronId;

                        $exists = Tarifa::model()->count($criteria);

                        if (!$exists){                     

                        

                            if($model->save())

				$this->redirect(array('proveedor/view','id'=>$model->idProveedor));

                        }

                        else

                        {                            

                            //ERROR

                        }



y

2.- Con la función beforeSave() del modelo realizando más o menos lo mismo que en el código anterior, pero el problema es cómo muestro el error al usuario? en ambos casos, y cuál sería la mejor forma de realizar esto?. Si tienen alguna mejor idea les agradeciería! :D

la primera opción me parece buena

tienes que usar




     $this->addError('padronId','El padron ya existe en Tarifas');



me funcionó correctamente, muchas Gracias!