Yii2中簡單的場景使用介紹
本文主要介紹的是關(guān)于Yii2簡單場景使用的相關(guān)內(nèi)容,分享出來供大家參考學(xué)習(xí),下面來一起看看詳細(xì)的介紹:
直接上代碼(主要部分):
模型層:
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'],//在該場景下的屬性進(jìn)行驗證,其他場景和沒有on的都不會驗證 ]; }
其結(jié)果是:用戶名沒有驗證,密碼驗證了
還有要注意如果你在模型里重寫了scenarios()
方法,在控制器調(diào)用了場景,那調(diào)用的場景名稱必須在scenarios()方法里有,否則出錯!
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關(guān)文章
php去除換行符的方法小結(jié)(PHP_EOL變量的使用)
本來在unix世界換行就用/n來代替,但是windows為了體現(xiàn)他的不同,就用/r/n,更有意思的是在mac中用/r。因此unix系列用 /n,windows系列用 /r/n,mac用 /r,這樣就用你寫的程序在不同的平臺上運行有著不少的麻煩2013-02-02

PHP實現(xiàn)的字符串匹配算法示例【sunday算法】