В 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'], и тоже не работает, в чем проблема?