Отправка данных на другой контроллер

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

Отправка данных на другой контроллер

Сообщение domowdenis »

Добрый день.

Есть форма

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

<?php $form = ActiveForm::begin(['action' => ['order/create'], 'method' => 'POST', 'options' => ['role' => 'form', 'class' => 'cart-form']]); ?>
<?= $form->field($orderAddForm, 'client', ['options' => ['class' => 'cart-input__group form-group']])->label(Yii::t('app', 'Клиент'), ['class'=>'cart-input__label form-label form-label--grey'])->dropDownList($client, ['class' => 'cart-input__input form-input form-input--grey', 'name' => 'client',  'prompt' => '']); ?>
<?= Html::submitButton(Yii::t('app', 'Сохранить'), ['class' => 'cart-nav__btn btn btn--wide btn--blue']) ?>
<?php ActiveForm::end(); ?>
Вопрос - а как мне добраться до формы в контроллере order/create ?
При объявлении формы в контроллере - я получаю пустую новую форму (что логично)
Я могу конечно массив POST исп., но мне кажется - должен быть какой-то способ?
unknownby
Сообщения: 749
Зарегистрирован: 2019.11.05, 16:34
Контактная информация:

Re: Отправка данных на другой контроллер

Сообщение unknownby »

domowdenis писал(а): 2021.06.30, 11:25 Добрый день.

Есть форма

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

<?php $form = ActiveForm::begin(['action' => ['order/create'], 'method' => 'POST', 'options' => ['role' => 'form', 'class' => 'cart-form']]); ?>
<?= $form->field($orderAddForm, 'client', ['options' => ['class' => 'cart-input__group form-group']])->label(Yii::t('app', 'Клиент'), ['class'=>'cart-input__label form-label form-label--grey'])->dropDownList($client, ['class' => 'cart-input__input form-input form-input--grey', 'name' => 'client',  'prompt' => '']); ?>
<?= Html::submitButton(Yii::t('app', 'Сохранить'), ['class' => 'cart-nav__btn btn btn--wide btn--blue']) ?>
<?php ActiveForm::end(); ?>
Вопрос - а как мне добраться до формы в контроллере order/create ?
При объявлении формы в контроллере - я получаю пустую новую форму (что логично)
Я могу конечно массив POST исп., но мне кажется - должен быть какой-то способ?
Для сохранения формы в БД в контроллере

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

        $order = new OrderForm();

        if ($order->load(Yii::$app->request->post()) && $order->order()) {
            $this->flash('success', \Yii::t('main', 'Order success'));
            return $this->redirect(Url::current());
        }
Сохранение формы лично у меня тут $order->order() в OrderForm
Сделайте как вам угодно сохранение :D

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

public function order()
    {
        if (!$this->validate()) {
            return false;
        }

        $users_order = new UserOrder([
            'users_orders_fio'    => $this->users_orders_fio,
            'users_orders_email'  => $this->users_orders_email,
            'users_orders_phone'  => $this->users_orders_phone,
            'users_orders_note'   => $this->users_orders_note,
            'users_orders_date'   => date('Y-m-d H:i:s'),
        ]);
        $users_order->setScenario(UserOrder::SCENARIOS_ORDER);
        if (!$users_order->save()) {
            return null;
        }

        return true;
    }
domowdenis
Сообщения: 35
Зарегистрирован: 2018.12.24, 17:29

Re: Отправка данных на другой контроллер

Сообщение domowdenis »

понял, спасибо
Закрыто