下面給大家介紹一下 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...