首頁 >php教程 >PHP开发 >Yii2.0 scenarios場景應用詳解

Yii2.0 scenarios場景應用詳解

黄舟
黄舟原創
2017-01-03 09:47:551635瀏覽

Yii2.0 場景的使用:

舉個簡單的例子,現在在post表裡面有title image content 三個的字段,當我創建一個post 的時候,我想三個字段全部是必填項,但是你修改的時候,title content 兩個欄位是必填的, iamge 可以不填入。在正常的情況下, [['title', 'content', 'image'], 'required',], 但是我們更改的時候只需要[['title', 'content'], 'required'], 就可以了,但是少了image 字段,我們的表單就無法提交,這種問題怎麼辦啊? ? 

場景可以幫你解決這個問題,以下是一個簡單的場景實例。

1.首先我們在model 裡面定義一下場景類別名稱必須是scenarios()

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

2.好的,如上所示,場景的基本設定我們就已經完成一部分了,下面我們設定rules() ,呼叫場景我們用on 關鍵字

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

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

3.好的,model 裡面我們就設定完畢了現在開始呼叫吧Controller裡面

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

上面的意思就是呼叫update 場景。一切就是這麼簡單

以上就是Yii2.0 scenarios場景應用詳解的內容,更多相關內容請關注PHP中文網(m.sbmmt.com)!


陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn