yii comment montrer le msg d'erreur personnalisé avec l'échec de la validation du msg
Je tiens à montrer mon msg d'erreur personnalisé avec la règle de validation échoue msg d'erreur. Comment puis-je le faire?
ce set msg de contrôleur de
$expire_date_error = '<p>Please enter the company license expire date more than notification days</p>
<ul>
<li>Expire Date is less than notificaion days on current date.</li>
</ul>';
Yii::app()->user->setFlash('expire_date_error',$expire_date_error);
$this->render('create',array(
'model'=>$model,
ce msg de vue.
<?php if(Yii::app()->user->hasFlash('expire_date_error')):?>
<div class="errorMessage">
<?php echo Yii::app()->user->getFlash('expire_date_error'); ?>
</div>
<?php endif; ?>
J'ai utilisé un code de http://www.yiiframework.com/wiki/21/how-to-work-with-flash-messages/
ce qui concerne
=======================+++++++++++++++++++++++++++++++++==========================
Mise à jour de question.
C'est mon contrôleur
public function actionCreate()
{
$model=new CompanyLicense;
//Uncomment the following line if AJAX validation is needed
//$this->performAjaxValidation($model);
if(isset($_POST['CompanyLicense']))
{
$currentTime = date('Y-m-d h:i:s', time());
$model->attributes= $_POST['CompanyLicense'];
$model->created = $currentTime;
$model->active = 1;
$model->expire_date= $_POST['CompanyLicense']['expire_date'];
if($model->checkExpireDate())
{
$model->file_name=CUploadedFile::getInstance($model,'file_name');
$folder = Yii::getPathOfAlias('webroot').'/images/';
if($model->save())
{
mkdir($folder.$model->id);
$model->file_name->saveAs($folder. $model->id . "/" . $model->file_name);
$this->redirect(array('view','id'=>$model->id));
}
}else{
//echo 'debug';
$expire_date_error = '<p>Please enter the company license expire date more than notification days</p>
<ul>
<li>Expire Date is less than notificaion days on current date.</li>
</ul>';
Yii::app()->user->setFlash('expire_date_error',$expire_date_error);
}
}
$this->render('create',array(
'model'=>$model,
));
}
public function checkExpireDate($attribute='',$params ='')
{
$currentTime = date('Y-m-d', time());
$currentTime = date('Y-m-d', strtotime($currentTime . '+ ' . $this->notification_days.' days'));
if ($currentTime > $this->expire_date)
return false;
return true;
//$this->addError($this->expire_date,'should be more ' . $this->notification_days . ' days on current date!');
}
J'en veux pour preuve cette erreur avec les autres échec de la validation du msg d'erreur.
OriginalL'auteur Thu Ra | 2012-07-31
Vous devez vous connecter pour publier un commentaire.
Veuillez lire ce
http://www.yiiframework.com/wiki/1/how-to-customize-the-error-message-of-a-validation-rule/
ou essayer
Ci-dessus, le message d'erreur personnalisé contient un prédéfini espace réservé {attribut}. Le CRequiredValidator (dont l'alias est requis) peut remplacer cet espace réservé avec le nom de l'attribut qui échoue à la validation.
OriginalL'auteur Abid Hussain
Si vous utiliser l'outil de validation de fonction, puis:
Tout à droite, il suffit de définir la chaîne de "Date d'Expiration est moins de notificaion jours sur la date du jour." à
$this->addError()
et la validation de l'attributexpire_date
telles que la fonctioncheck()
. Enfin, votre méthode de contrôle devrait être: paste.ubuntu.com/1121289Contrôleur: paste.ubuntu.com/1121292 Vous pouvez obtenir des erreurs de validation en vue par $model->getErrors() et y faire de toute mise en page, ce que vous voulez
votre "$this->addError()" et "$model->getErrors()" sont bonnes. mais vous savez, il y a rien de montrer une autre de valider les erreurs. J'en veux pour preuve le fait de valider les erreurs et les checkExpireDate erreur à la fois.
Shi~, homme, cochez cette yiiframework.com/doc/api/1.1/CHtml#errorSummary-detail C'est que vous avez besoin de 100% 🙂
OriginalL'auteur Dmitrii Korotovskii