Как добавить собственные данные в POST в YII2? - PullRequest
0 голосов
/ 12 октября 2018

У меня вопрос о добавлении некоторых данных вне формы и отправке их с данными формы.Смотри!У меня есть 3 поля ActiveForm:

имя (текст) электронная почта (электронная почта) курс (скрыт) * ​​1003 *

Хорошо, но мне нужно добавить еще одно имя «статус».Я не хочу добавлять скрытые поля, просто хочу добавить внутри контроллера или модели.

Как?

Контроллер:

public function actionFree()
{
    $model = new SubscribeForm();

    $this->view->title = "ШКОЛА ПИСАТЕЛЬСКОГО МАСТЕРСТВА: Новичок курс";

    if ($post = $model->load(Yii::$app->request->post())) {
        if ($model->save()) {
            Yii::$app->session->setFlash('success', 'Данные приняты');
            return $this->refresh();
        }
        else {
            Yii::$app->session->setFlash('error', 'Ошибка');
        }
    }
    else {
        // страница отображается первый раз
        return $this->render('free-course', ['model' => $model, 'course_id' => 1]);
    }
}

Модель:

class SubscribeForm extends ActiveRecord
{
    public $fio;
    public $email;
    public $course;
    public $status;

    public static function tableName()
    {
        return 'users';
    }

    public function rules()
    {
        return [
            // username and password are both required
            [['fio', 'email'], 'required'],
            [['email'], 'unique'],
            ['email', 'email'],
            ['email', 'safe']
        ];
    }
}

1 Ответ

0 голосов
/ 12 октября 2018

Вы можете просто установить значение в вашем контроллере, например так:

public function actionFree()
{
    $model = new SubscribeForm();
    $model->status = 'your-status-value';
    // ... the rest of your code

Или вы можете добавить значение по умолчанию в вашей модели.Таким образом, вы все еще можете отменять значение из контроллера или поля формы, но получите это значение, когда ничего не будет предоставлено.

public function rules()
{
    return [
        ['status', 'default', 'value' => 'your-default-status-value'],
        // .. other rules
    ];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...