ホームページ > php教程 > PHP开发 > Yii2.0シナリオシナリオアプリケーションの詳細説明

Yii2.0シナリオシナリオアプリケーションの詳細説明

黄舟
リリース: 2017-01-03 09:47:55
オリジナル
1601 人が閲覧しました

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) に注目してください。


関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート