Verwendung des Yii2.0-Szenarios:
Für ein einfaches Beispiel gibt es drei Felder: Titel, Bild, Inhalt in der Beitragstabelle. Wenn ich einen Beitrag erstelle, möchte ich, dass alle drei Felder vorhanden sind Erforderliches Feld, aber wenn Sie es ändern, sind die beiden Felder des Titelinhalts erforderlich und iamge muss nicht ausgefüllt werden. Unter normalen Umständen [['title', 'content', 'image'], 'required',], aber wenn wir es ändern, brauchen wir nur [['title', 'content'], 'required'], Es ist einfach in Ordnung, aber ohne das Bildfeld kann unser Formular nicht gesendet werden. Was sollen wir gegen dieses Problem tun? ?
Szenarien können Ihnen bei der Lösung dieses Problems helfen. Nachfolgend finden Sie ein einfaches Szenariobeispiel.
1. Zuerst definieren wir im Modell, dass der Name der Szenenklasse sein muss.
public function scenarios() { return [ 'create' => ['title', 'image', 'content'], 'update' => ['title', 'content'], ]; }
2 Okay, wie oben gezeigt, haben wir einen Teil der Grundeinstellung abgeschlossen der Szene. Nun legen wir die Regeln fest () und verwenden beim Aufrufen der Szene das Schlüsselwort
[['title', 'content'], 'required', 'on' => ['create', 'update']], [['image'], 'required', 'on' => 'create'], [['image'], 'image', 'enableClientValidation' => true, 'maxSize' => 1024, 'message' => '您上传的文件过大', 'on' => ['create', 'update']], on 指定的就是场景,一个场景用字符串,多个场景用数组
3. Nun haben wir die Einstellungen im Modell abgeschlossen im Controller
$model = $this->findModel($id); $model->setScenario('update'); //或者 $model->scenario = 'update'; 都可以
Das Obige bedeutet, die Update-Szene aufzurufen. So einfach ist alles
Das Obige ist die detaillierte Erklärung der Szenarioanwendung von Yii2.0. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (m.sbmmt.com)!