@Ghost2692

В Yii2 не работает save() если есть валидация?

В Yii2 не работает save() если есть валидация и работает когда save(false).
controller
$nameContact = new AddDetailsContactList();
        if ($nameContact->load(Yii::$app->request->post()) && $nameContact->validate()) {
            if($nameContact->saveNameContact($id)){
                return $this->refresh();
            }
        }

model
public function rules()
    {
        return [
            [['name_contact'], 'string', 'min' => 2, 'max' => 20],
            [['id_contact'], 'integer'],
//            [['id_contact', 'name_contact'], 'safe'],
        ];
    }


    //Save name contact
    public function saveNameContact($id){
        $id_contact = Html::encode($this->id_contact);
        $name = ContactList::find()->where(['contact_id' => $id])->andWhere(['id' => $id_contact])->one();
        $name->name = Html::encode($this->name_contact);
        $name->save();
    }

view
<?php $form = ActiveForm::begin(['method' => 'post', 'id' => 'name-contact' . $contact->id]); ?>
<?= $form->field($nameContact, 'name_contact')->textInput(['class' => 'form-control', 'id' => $contact->id])->label(Yii::t('app', 'Contact name') . ':', ['class' => 'col-form-label']) ?>

<?= $form->field($nameContact, 'id_contact')->input('hidden', ['value' => $contact->id])->label(false) ?>
<?php ActiveForm::end(); ?>

пробовал правило ['id_contact', 'name_contact'], 'safe'], и тоже не работает, в чем проблема?
  • Вопрос задан
  • 687 просмотров
Пригласить эксперта
Ответы на вопрос 1
usdglander
@usdglander
Yipee-ki-yay
[['name_contact'], 'string', 'min' => 2, 'max' => 20]

Это как?
Типа будем рассматривать как строку, но чтобы она была больше двух, но меньше двадцати?

upd: А вообще
$nameContact->validate();
var_dump($nameContact->errors);

много интересного может подсказать
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы