Using Unique Validator On Formmodel

I would like using "unique validator" on "Form Model" for two task "create and update data". But when I update data, the field with unique then show error. I want the validator disable with itself data,and validator with new replace data.




<?php

class TypeForm extends CFormModel{

	public $name;

	public $slug;

	public $des;

	public $order = 10;

	public $active = Type::TYPE_ACTIVE;

	public $isNew = true; // if update set to false

	public function rules(){

		return array(

				array('name, slug, active','required'),

				array('name,slug','length','max'=>250,'min'=>4),

			array('slug','unique','className'=>'Type'),	//work on add new data, but update not working					

				array('des, order','safe'),

		);

	}

	public function onSaveForm(CEvent $event){

		$this->raiseEvent('onSaveForm', $event);

	}

	public function saveForm(){

		$this->onSaveForm(new CEvent($this));

		$model = new Type;

		$model->attributes = $this->attributes;

		return $model->save(false);

	}

	public function onUpdate(CEvent $event){

		$this->raiseEvent('onUpdate', $event);

	}

	public function updateForm(){


	}

}



and my form




<?php

/* @var $this TypeFormController */

/* @var $model TypeForm */

/* @var $form CActiveForm */

?>


<div class="form">


	<?php $form=$this->beginWidget('CActiveForm', array(

			'id'=>'type-form-_form-form',

			'enableAjaxValidation'=>false,

)); ?>


	<p class="note">

		Fields with <span class="required">*</span> are required.

	</p>


	<?php echo $form->errorSummary($model); ?>


	<div class="row">

		<?php echo $form->labelEx($model,'name'); ?>

		<?php echo $form->textField($model,'name',array("size"=>40));?>

		<?php echo $form->error($model,'name'); ?>

	</div>


	<div class="row">

		<?php echo $form->labelEx($model,'slug'); ?>

		<?php echo $form->textField($model,'slug',array("size"=>40));?>

		<?php echo $form->error($model,'slug'); ?>

	</div>


	<div class="row">

		<?php echo $form->labelEx($model,'active'); ?>

		<?php echo $form->dropDownList($model, 'active',

				array(

					""=>"choose once",

					Type::TYPE_ACTIVE=>"Active",

					Type::TYPE_SUPPEND=>"Suppend",

					)

				) ?>

		<?php echo $form->error($model,'active'); ?>

	</div>


	<div class="row">

		<?php echo $form->labelEx($model,'order'); ?>

		<?php echo $form->textField($model,'order',array("size"=>40));?>

		<?php echo $form->error($model,'order'); ?>

	</div>


	<div class="row">

		<?php echo $form->labelEx($model,'des'); ?>

		<?php echo $form->textArea($model,'des',array("rows"=>10,"cols"=>50)); ?>

		<?php echo $form->error($model,'des'); ?>

	</div>







	<div class="row buttons">

		<?php echo CHtml::submitButton($model->isNew?"New":"Update"); ?>

		<?php echo CHtml::resetButton("Clear"); ?>

	</div>


	<?php $this->endWidget(); ?>


</div>

<!-- form -->




ps: I wouldn’t like use CActiveRecord

sr my bad english