Yii2.0 場景的簡單使用

轉自:http://blog.sina.com.cn/s/blog_88a65c1b0101j717.html

Yii2.0 場景的簡單使用

下面給大家介紹一下 yii2.0 場景的使用。小夥多嘮叨一下了,就是擔心有的人還不知道,舉個簡單的例子,現在在 post表裏面有title image content 三個的字段,當我創建一個 post的時候,我想三個字段全部是必填項,但是你修改的時候,title content 兩個字段是必填的, iamge可以不填寫。正常的情況下,
[['title', 'content', 'image'], 'required',],  但是我們更改的時候 只需要 [['title', 'content'],'required'], 就可以了,但是少了 image 字段 我們的表單就無法提交,這種問題怎麼辦啊??場景可以幫你解決這種問題,下面是一個簡單的場景實例。

1、首先我們在 model 裏面定義一下場景  類名必須是  scenarios()

 public functionscenarios()
   {
       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 場景。一切就是這麼簡單,


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章