首頁 > php教程 > PHP开发 > 主體

Yii2.0 scenarios場景應用詳解

黄舟
發布: 2017-01-03 09:47:55
原創
1596 人瀏覽過

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中文網(www.php.cn)!


相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門推薦
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板