有個項目正在使用Yii2開發(fā),因為是第一次使用2代Yii,也算是不停的摸索。
成都創(chuàng)新互聯(lián)公司專注于吉利企業(yè)網(wǎng)站建設,自適應網(wǎng)站建設,成都商城網(wǎng)站開發(fā)。吉利網(wǎng)站建設公司,為吉利等地區(qū)提供建站服務。全流程定制網(wǎng)站開發(fā),專業(yè)設計,全程項目跟蹤,成都創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務
昨天就遇到一個問題,谷歌也幫不上忙,就是自己在model里寫的自定義validator不生效。
原本以為只是自定義無效,終于在使用unique這個yii原生validator時發(fā)現(xiàn),問題的答案就是使用ajax validation。
為什么自定義validator和原生unique都無效呢?因為這些代碼是保存在服務器上的,不使用ajax怎樣能獲取驗證結果呢?
yii2中的controller也必須
use yii\web\Response; use yii\widgets\ActiveForm;
至于action里則應該使用如下語句,來自于yii2官方doc
if (Yii::$app->request->isAjax && $model->load(Yii::$app->request->post())) { Yii::$app->response->format = Response::FORMAT_JSON; return ActiveForm::validate($model); }