Maison >php教程 >PHP开发 >Explication détaillée de l'application du scénario des scénarios Yii2.0

Explication détaillée de l'application du scénario des scénarios Yii2.0

黄舟
黄舟original
2017-01-03 09:47:551599parcourir

Utilisation du scénario Yii2.0 :

Pour un exemple simple, il y a trois champs : titre, image, contenu dans la table des publications. Lorsque je crée une publication, je veux les trois champs. C'est un. champ obligatoire, mais lorsque vous le modifiez, les deux champs de contenu du titre sont obligatoires, et iamge n'a pas besoin d'être renseigné. Dans des circonstances normales, [['title', 'content', 'image'], 'obligatoire',], mais lorsque nous le modifions, nous n'avons besoin que de [['titre', 'content'], 'obligatoire'], OK, mais sans le champ image, notre formulaire ne peut pas être soumis. Que devons-nous faire pour résoudre ce problème ? ?

Les scénarios peuvent vous aider à résoudre ce problème. Vous trouverez ci-dessous un exemple de scénario simple.

1. Tout d'abord, nous définissons dans le modèle que le nom de la classe de scène doit être Scénarios()

public function scenarios()
{
return [
'create' => ['title', 'image', 'content'],
'update' => ['title', 'content'],
];
}

2 D'accord, comme indiqué ci-dessus, nous avons effectué une partie du réglage de base. de la scène. D'accord, maintenant nous définissons les règles (), et lors de l'appel de la scène, nous utilisons le mot-clé on

[['title', 'content'], 'required', 'on' => ['create', 'update']],
[['image'], 'required', 'on' => 'create'],
[['image'], 'image', 'enableClientValidation' => true, 'maxSize' => 1024, 'message' => '您上传的文件过大', 'on' => ['create', 'update']],

on 指定的就是场景,一个场景用字符串,多个场景用数组

3. D'accord, nous avons terminé les paramètres dans le modèle. dans le contrôleur

$model = $this->findModel($id);
$model->setScenario('update'); 
//或者 $model->scenario = 'update'; 都可以

Ce qui précède signifie appeler la scène de mise à jour. Tout est aussi simple

Ce qui précède est l'explication détaillée de l'application des scénarios de scénarios Yii2.0. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn) !


Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn