Перейти к содержимому


Yii2 форма обновления


  • Вы не можете ответить в тему
В этой теме нет ответов

#1 LLIAKAJI

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 84 сообщений
Репутация: 3

Отправлено 03 Декабрь 2019 - 10:44

Доброго времени суток,
1) на форме при обновлении валидация выводит ошибки об уникальности текущего поля, как ее обойти?
2) если пользователь таки меняет уникальное поле, на другое которое уже имеется в БД, то ее нужно включить


<?php
$form = ActiveForm::begin([
    'enableAjaxValidation' => true,
    'validationUrl' => \yii\helpers\Url::toRoute('post/validation'),
    ]
)
?>
<?=$form->field($post, 'login')?> // уникальный логин
<?=$form->field($post, 'name')?>
<?=$form->field($post, 'password')->passwordInput() ?>
<?=$form->field($post, 'email')->input('email')?> // уникальный емейл
<?=Html::submitButton('обновить', ['class'=>'btn btn-success'])?>
<?php
ActiveForm::end()
?>
//модель

class TestForm extends ActiveRecord
{
    public function rules(){ //правила валидации 
        return [
            ['login','unique','targetClass'=>'app\models\TestForm'],
            ['email','required'],
             ['email','unique','targetClass'=>'app\models\TestForm'],
            ];

    }
}
//контроллер

public function actionUpdate($id){
        $post = TestForm::findOne($id);
       if($post->load(Yii::$app->request->post()) && $post->save()){
        Yii::$app->getSession()->setFlash('message', 'Обновлено');
        return $this->redirect(['index','id'=>$post->id]);
       }else{
           return $this->render('update',compact('post'));

       }

    }

Сообщение отредактировал LLIAKAJI: 04 Декабрь 2019 - 07:29






Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных