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