Я хотел бы сделать обычную проверку в yii2, но это не сработает.Показаны ошибки в проверке формы yii2
Что я хотел бы, чтобы проверить, когда статус грузовика не 17 или 18, что, если, например, его 12 эта ошибка должна быть возвращена, но ошибка всегда отображается
public function validateRegno()
{
$truck = TblTrucks::find()->where(["reg_no"=>$this->reg_no])->all();
if ($truck) {
if(!$truck->truck_status ==18 || !$truck->truck_status ==17){
$this->addError('reg_no', 'The truck is not yet cleared by customer service');
}
}
}
Эти типовые правила
public function rules()
{
return [
[['reg_no', 'truck_category', 'added_by', 'truck_status', 'driver_name'], 'required'],
[['truck_category', 'added_by', 'truck_status', 'is_normal'], 'integer'],
[['added_on'], 'safe'],
[['reg_no'], 'string', 'max' => 50],
['reg_no', 'validateRegno','on' => 'create'],
}
Это моя форма
<?php $form = ActiveForm::begin(['id' => $model->formName(),
'enableAjaxValidation' => true,
//'enableClientValidation' => true,
'validationUrl' => ['truck/validate'],
]); ?>
В контроллере
(truck/validate)
public function actionValidate(){
$model = new TblTrucks();
$model->scenario = 'create';
if (Yii::$app->request->isAjax && $model->load(Yii::$app->request->post())) {
if (!$model->validate()) {
Yii::$app->response->format='json';
return ActiveForm::validate($model);
}
}
}
Используйте '' enableAjaxValidation '=> true' в форме, а также добавьте 'if (Yii :: $ app-> request-> isAjax && $ model-> load (Yii :: $ app-> request-> post())) { Yii :: $ app-> response-> format = \ yii \ web \ Response :: FORMAT_JSON; return ActiveForm :: validate ($ model); } 'в действии часть – GAMITG
, но это не получается –
вы получаете ошибку? – GAMITG