Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
public function actionSaveCall(){
$model=new Calls('callSubmit');
if( isset($_POST['Calls']) && isset($_POST['Calls']['call_status']) ) {
switch($_POST['Calls']['call_status']) {
case Calls::CALL_FAIL:
$model->setScenario('validCallSubmit');
break;
case Calls::SUCCESS_CALL:
$model->setScenario('successCallSubmit');
break;
case Calls::WRONG_NUMBER:
$model->setScenario('invalidNumberSubmit');
break;
}
$this->performCallAjaxValidation($model);
...
}
}
class ExRequiredValidator extends CRequiredValidator{
public $strict = true;
/**
* makes validation depend on some another attribute value
* useful when some fileds of form are hidden based on appropriate attribute
* @var string
*/
public $boundAttribute = null;
/**
* @var string
*/
public $boundAttributeValue = null;
public function rules(){
return array(
array('call_status','required','message'=>'Required field'),
array('talk_status','ExRequiredValidator','boundAttribute'=>'call_status','boundAttributeValue'=>'success','message'=>'Required field'),
);
}
public function rules(){
return array(
array('call_status','required','message'=>'Required field'),
array('talk_status','ExRequiredValidator','boundAttribute'=>'call_status','
boundAttributeValue'=>'success','message'=>'Required field'),
);
}
Yii: Динамическое изменение правил валидации (сценариев)