Yii2 0 場景的簡單使用

2021-06-26 04:59:01 字數 1253 閱讀 4999

下面給大家介紹一下 yii2.0 場景的使用。小伙多嘮叨一下了,就是擔心有的人還不知道,舉個簡單的例子,現在在 post表裡面有title image content 三個的字段,當我建立乙個 post的時候,我想三個字段全部是必填項,但是你修改的時候,title content 兩個欄位是必填的, iamge可以不填寫。正常的情況下,

[['title', 'content', 'image'], 'required',], 

但是我們更改的時候 

只需要 

[['title', 'content'],'required'], 就可以了,但是少了 image 字段 

我們的表單就無法提交,這種問題怎麼辦啊??場景可以幫你解決這種問題,下面是乙個簡單的場景例項。

1、首先我們在 model 裡面定義一下場景  

類名必須是  scenarios()

public functionscenarios()

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中場景的使用小記

熟悉yii框架的人都知道,靈活的使用場景可以達到事半功倍的效果!比如普通的資料的新增 修改,新增需要驗證其中兩個字段,而修改只需要驗證其中乙個字段 還有種情況,也是我們現在用到的,同一張表 同乙個model 有可能在不同的專案分支中使用,但是不用的專案分支對成員變數的驗證是不一樣的,這時使用場景就可...

yii2 0 模組的使用

以高階模板為例 1 複製目錄 frontend或backend 為乙個新目錄pro 修改advanced common config bootstrap.php 新增一行,載入剛才的路勁 yii setalias pro dirname dirname dir pro 2 目錄pro建立module...

yii2場景的應用 scenarios

例如 現在在 post表裡面有 title image content 三個的字段,當我建立乙個 post 的時候,我想三個字段全部是必填項,但是你修改的時候,title content 兩個欄位是必填的,iamge 可以不填寫。正常的情況下,title content image required...