Я пытаюсь реализовать с помощью пользовательской функции в модели не работает, я не понимаю, что не так в моем коде. Я пытаюсь позвонить с основным позже, я поставлю свое состояние.
Вот код модели
public function rules()
{
return [
['mobile_number', 'required'],
['mobile_number', 'myfunction'],
];
}
public function myfunction($attribute,$params)
{
$this->addError($attribute, 'You have already submitted');
}
Вот код контроллера
public function actionCreate()
{
$model = new Createuser();
if ($model->load(Yii::$app->request->post()) && $model->save()) {
return $this->redirect(['view', 'id' => $model->id]);
} else {
return $this->render('create', [
'model' => $model,
]);
}
}
это не присвоение ошибки в поле формы.
Thanks in advance.
Вы уверены, что не расширяете модельный класс? если это так, вы должны поставить это:
$model->validate()
Ваша модель:
public function rules()
{
return [
['mobile_number', 'required'],
['mobile_number', 'myfunction'],
];
}
public function myfunction($attribute,$params)
{
$this->addError($attribute, 'You have already submitted');
return false;
}
И ваш контроллер:
public function actionCreate()
{
$model = new Createuser();
if ($model->load(Yii::$app->request->post()) && $model->save() && $model->validate()) {
return $this->redirect(['view', 'id' => $model->id]);
} else {
return $this->render('create', [
'model' => $model,
]);
}
}
попробуй это
в вашем контроллере
protected function performAjaxValidation($model = NULL) {
if (Yii::$app->request->isAjax && $model->load(Yii::$app->request->post())) {
Yii::$app->response->format = Response::FORMAT_JSON;
echo json_encode(ActiveForm::validate($model));
Yii::$app->end();
}
}
public function actionCreate()
{
$model = new Createuser();
$this->performAjaxValidation($model);
if ($model->load(Yii::$app->request->post()) && $model->save() && $model->validate()) {
return $this->redirect(['view', 'id' => $model->id]);
} else {
return $this->render('create', [
'model' => $model,
]);
}
}
Код в порядке. это была ошибка с проверкой динамической формы.