本文主要介紹的是關(guān)于Yii2簡單場景使用的相關(guān)內(nèi)容,分享出來供大家參考學習,下面來一起看看詳細的介紹:
直接上代碼(主要部分):
模型層:
public function rules() { return [ [['name', 'account', 'pwd'], 'string', 'max' => 11], ['account','required','message'=>'用戶名不能為空'], ['pwd','required','message'=>'密碼不能為空','on'=>'update'] ]; }
控制器:
$model = new User(); if(isset($_POST['User'])){ $model -> attributes = Yii::$app->request->post('User'); $model -> save(); }
這個時候在控制器沒有調(diào)用任何場景。他的結(jié)果是:用戶名驗證,密碼不驗證
如果在控制器加上一句$model->scenario='update';
其結(jié)果是:用戶名,密碼都驗證了
如果這個時候再在模型加上幾句代碼:
public function scenarios() { return [ 'update'=>['pwd'],//在該場景下的屬性進行驗證,其他場景和沒有on的都不會驗證 ]; }
其結(jié)果是:用戶名沒有驗證,密碼驗證了
還有要注意如果你在模型里重寫了scenarios()
方法,在控制器調(diào)用了場景,那調(diào)用的場景名稱必須在scenarios()方法里有,否則出錯!
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對的支持。
【網(wǎng)站聲明】本站除付費源碼經(jīng)過測試外,其他素材未做測試,不保證完整性,網(wǎng)站上部分源碼僅限學習交流,請勿用于商業(yè)用途。如損害你的權(quán)益請聯(lián)系客服QQ:2655101040 給予處理,謝謝支持。