hiddenInput - как получить значение?

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Закрыто
domowdenis
Сообщения: 19
Зарегистрирован: 2018.12.24, 17:29

hiddenInput - как получить значение?

Сообщение domowdenis » 2019.05.06, 10:57

Добрый день.

Вопрос - пытаюсь исп. hiddenInput в ActiveForm

Код: Выделить всё

<?php $form = ActiveForm::begin(
    ['action' => Url::to(['query/add']), 'method' => 'post', 'options' => ['role' => 'form','id' => 'help-block-form']]) ?>
    <?= $form->field($productQueryForm, 'query_type')->hiddenInput(['value' => 1])->label(false) ?>
    <?= $form->field($productQueryForm, 'query_page')->hiddenInput(['value' => 'Рулонная штора ' . $productData->product_title . ' (ID - ' . $productData->product_id . ')'])->label(false) ?>
    <?= $form->field($productQueryForm, 'query_name')->input('text', ['class' => 'form-control form-control-input-white']) ?>
    <?= $form->field($productQueryForm, 'query_phone')->input('text', ['class' => 'form-control form-control-input-white form-control-phone']) ?>
<?= Html::submitButton(Yii::t('app', 'Связатся со мной'),['class' => 'btn btn-block btn-main btn-orange']) ?>
<?php $form = ActiveForm::end() ?>

Притом - Если вывожу содержимое формы - вижу эти значения, пытаюсь обратится - не вижу

Код: Выделить всё

            echo ("<pre>");
            print_r(Yii::$app->request->post());
            echo ("</pre>");
            
            echo ($form->query_type);
            echo ("<br>");
            echo ($form->query_page);
            echo ("<br>");
            echo ($form->query_name);
            echo ("<br>");
            echo ($form->query_phone);
http://prntscr.com/nkydy6


Форма

Код: Выделить всё

class ProductQueryForm extends Model
{
    public $query_type;
    public $query_page;
    public $query_name;
    public $query_phone;


    public function attributeLabels()
    {
        return [
            'query_type' => Yii::t('app', 'Тип запроса'),
            'query_page' => Yii::t('app', 'Страница запроса'),
            'query_name' => Yii::t('app', 'Как вас зовут?'),
            'query_phone' => Yii::t('app', 'Ваш номер телефона для связи?'),
        ];
    }

    public function rules()
    {
        return [
            ['query_name', 'required', 'message' => Yii::t('app', 'Нам важно знать, как Вас зовут.')],
            ['query_phone', 'required', 'message' => Yii::t('app', 'Нам нужен номер телефона для связи.')],
        ];
    }
}

Usick
Сообщения: 40
Зарегистрирован: 2017.04.11, 12:07

Re: hiddenInput - как получить значение?

Сообщение Usick » 2019.05.06, 11:25

Для того чтобы значения из формы попали в свойства модели, они (свойства) должны быть прописаны в правилах, т.е. в методе rules(). Сейчас у Вас там прописаны правила только для 'query_name' и 'query_phone', вот они и считаются валидными и им присваиваются соответствующие значение из Yii::$app->request->post(), все остальное что там есть - не берется во внимание.

domowdenis
Сообщения: 19
Зарегистрирован: 2018.12.24, 17:29

Re: hiddenInput - как получить значение?

Сообщение domowdenis » 2019.05.06, 11:31

Логично. Протупил.

Спс огромное за помощь

Закрыто