Я через миграцию добавил в таблицу одну колонку, name. В контроллере создаю модель, чтобы записать комментарии в нее из вьюхи. Но вот что происходит, в случае где передается 'text' параметр, то всё нормально добавляется в бд, но почему то name вообще не срабатывает. Я вардампил атрибуты которые приходят в модель, там всё что надо, кроме поля name. В POST всё приходит правильно, проверил. Если я нагло пропишу в контроллере $comments->name = "Своё значение"; - Оно запишется в БД. Из POST почему то нет. Comments наследуется от AR. Я уже борюсь час где-то, и не понимаю почему происходит так.
Вот код контроллера:
$comments = new Comment();
$comments->article_id = $_GET['id'];
if($comments->load(Yii::$app->request->post())) {
$comments->save();
return $this->refresh();
}
Код View:
<?php $form = ActiveForm::begin(['class' =>"form-horizontal contact-form"]); ?>
<?= $form->field($comments, 'name')->textInput(['placeholder' => 'Name'])->label(false) ?>
<?= $form->field($comments, 'text')->textarea(['rows' => 5, 'placeholder' => "Write Message"])->label(false)?>
<?= Html2::submitButton('Post Comment', ['class' => 'btn send-btn']) ?>
<?php ActiveForm::end(); ?>
Скорее всего, ваше поле name не сетится через метод load, так как отсутствует в правилах валидации. Если вам не нежно валидировать это поле никак, то в описании правил используйте SafeValidator:
public function rules()
{
return [
['name', 'safe']
];
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
ЗдравствуйтеПодскажите как отправить сообщение через Whatsapp с помощью PHP