Yii2.0 シナリオの使用法:
簡単な例を挙げると、投稿テーブルにタイトル画像コンテンツの 3 つのフィールドがあります。投稿を作成するときは 3 つのフィールドすべてが必須だと思いますが、それを変更すると、タイトル内容の 2 つのフィールドは必須ですが、画像は入力する必要はありません。通常の状況では [['title', 'content', 'image'], 'required',] ですが、変更する場合は [['title', 'content'], 'required'], だけが必要になります。問題ありませんが、画像フィールドがないとフォームを送信できません。この問題についてはどうすればよいでしょうか。 ?
シナリオはこの問題の解決に役立ちます。以下は簡単なシナリオの例です。
1. まず、モデル内でシーンのクラス名を定義します。これは、scenarios() である必要があります
public function scenarios() { return [ 'create' => ['title', 'image', 'content'], 'update' => ['title', 'content'], ]; }
2. さて、上に示したように、シーンの基本的な設定の一部が完了しました。 ) を呼び出して、シーン
[['title', 'content'], 'required', 'on' => ['create', 'update']], [['image'], 'required', 'on' => 'create'], [['image'], 'image', 'enableClientValidation' => true, 'maxSize' => 1024, 'message' => '您上传的文件过大', 'on' => ['create', 'update']], on 指定的就是场景,一个场景用字符串,多个场景用数组
に on キーワードを使用します。 さて、モデルを設定しました。次に、コントローラーで呼び出してみましょう
$model = $this->findModel($id); $model->setScenario('update'); //或者 $model->scenario = 'update'; 都可以
上記は、更新シーンを呼び出すことを意味します。すべてはとても簡単です
上記は Yii2.0 シナリオ シナリオ アプリケーションの詳細な説明です。その他の関連コンテンツについては、PHP 中国語 Web サイト (www.php.cn) に注目してください。