yii2中的場景使用

2022-05-10 11:58:07 字數 988 閱讀 4494

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

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

public

function

scenarios()

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

[['title', 'content'], 'required', 'on' => ['create', 'update']],[['image'], 'required', 'on' => 'create'],[['image'], 'image', 'enableclientvalidation' => true,   'maxsize' => 1024, 'message' => '您上傳的檔案過

大', 'on' => ['create']],

on 指定的就是場景,乙個場景用字串,多個場景用陣列

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

$model = $this->findmodel($id

);$model->setscenario('update'); or $model->scenario = 'update';

Yii2中簡單的場景使用介紹

直接上 主要部分 模型層 public function rules 控制器 model new user if isset post user 這個時候在控制器沒有呼叫任何場景。他的結果是 使用者名稱驗證,密碼不驗證 如果在控制器加上一句 modedgllenlvql scenario updat...

Yii2 中 indexBy 的使用詳解

在專案開發中經常會使用到一些特殊的值作為陣列的索引,一般可以先查詢出資料後陣列迴圈拼接成所需的格式。不過yii2框架提供了一種更簡單的方法indexby 當你在呼叫all 方法時,它將返回乙個以連續的整型數值為索引的陣列。而有時候你可能希望使用乙個特定的字段或者表示式的值來作為索引結果集陣列。那麼你...

yii2場景的應用 scenarios

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