Quantcast
Channel: BSOURCECODE
Viewing all articles
Browse latest Browse all 10

Scenarios validation In Yii 1.0

$
0
0

Scenarios validation is the one of the useful future in yii framwork and seperating the validation on any class derived from CModel. For example When we register a user, we will do some validation. For the registered user update, we will use different type validation. In this type of case we will use scenario.

Syntax

//rule for single scenario
'on'=>'scenarioName'
//rule for multiple scenarios
'on'=>'scenarioName_1, scenarioName_2, scenarioName_3'

Secnarios validation is used to restrict the data When we apply this.

CActiveRecord Scenarios

By default CActiveRcord having three scenarios. Thet are insert, update and search. When we create a new record in database table, the ‘insert’ scenario will automatically work. When we update a record, the model will take ‘update’ scenario. Scenatio is a very useful way to validate the model in different types of method.

Scenario With Default Validation

public function rules() {
	..............
	array('createdon', 'default',
		'value'=>new CDbExpression('NOW()'), 'on'=>'insert'),
	array('updatedon', 'default',
		'value'=>new CDbExpression('NOW()'), 'on'=>'update'),
	array('id, username, email', 'safe', 'on' => 'search'),
	..............
}

Scenario With Required

public function rules() {
	..............
	array('username, email', 'required','on'=>'register'), 
	..............
}

Scenario With Password Validation

Password scenario will helpful to understand the use of scenario in model. I given sample user model. Normally when we register a user model, we will give the username, password, firstname etc and also we will change the password simultensiouly. For this i added the scenario validation below

User Model

class ClassName extends CActiveRecord {
	..............
	public function rules() {
		..............
		array('password', 'compare', 'compareAttribute' =>'confirmpassword',
			'on'=>'register,changepassword'),
		array('username, email', 'unique','on'=>'register, update'), 			
		..............
	}
	..............
}

Validation Scenario In Controller

I added the different type format for same scenario validation in controller action.

<?php
	...............
	public function actionRegister(){
		$model=new User;
		$model->scenario='register';
		// OR
		//$model=new User('register');
		// OR
		//$model=new User();
		//$model->validate('register');
	}
	
	public function actionChangepassword($id){
		$model=new User;
		$model->scenario='changepassword';
		// OR
		//$model=new User('changepassword');
		//$model=new User();
		//$model->validate('changepassword');
	}
?>

Viewing all articles
Browse latest Browse all 10

Trending Articles