Здравствуйте.
---
Материал:
=
// вьюха
...
<?= Html::beginForm(['/phone'], 'post', ['name' => 'send']) ?>
<div class="input-group">
<?=Html::input('text', 'action', $telefon,['type' => 'hidden']) ?>
<?=Html::input('text', 'code', '',['class' => 'form-control input-lg', 'placeholder' => 'введите код из SMS']) ?>
<span class="input-group-btn">
<?= Html::submitButton('Активировать', ['class' => 'btn btn-danger btn-lg btn-flat']) ?>
</span>
</div>
<?= Html::endForm() ?>
...
и
// controller
...
public function actionPhone() {
$model = User::findOne(Yii::$app->user->identity->id); // записываем номер телефона в БД
if ($model->load(Yii::$app->request->post()) && $model->save()) { // обновляем запись
Yii::$app->session->setFlash('contactPhone'); // выводим информацию об успехе
if(!$model->save()){
throw new \yii\web\HttpException(500, 'Невозможно сохранить'); // или показываем ошибку в записи
}
return $this->refresh(); // обновляем страницу
}
if(Yii::$app->request->post('send')){ // если отправилась форма с name "send"
if(Yii::$app->request->post('code') == Yii::$app->request->post('action')){ // и эти переданные post данные одинаковые
return $this->redirect(['/account/user', 'id' => Yii::$app->user->identity->id]); // тогда перенаправляем на страницу
} else {
Yii::$app->getSession()->setFlash('error', 'Вы ввели не верный код активации!'); // или посылаем ошибку
}
}
return $this->render('phone', ['model' => $model]); // выводим результат
}
...
Пояснения: Контроллер сначала обновляет поле в строке БД, если оно пустое, добавляет номер телефона. Потом, когда скрипт записал номер телефона, появляется другая форма с рандомными цифрами и пустым полем, куда надо вписать цифры из sms - когда post данные начнут отправляться и валидироваться, тогда я перенесу скрытые данные в контроллер. Как вы поняли, вторая форма ничего не отправляет в базу данных, а лишь проверяет, одинаковые данные или разные, если выдаст совпадения, скрипт sms закрепит этот номер как подтверждённый.
ВОПРОС: Как правильно передавать post данные, чтобы контроллер их видел и обрабатывал, везде лишь материал по обработки данных в БД, а по обработке post данных ничего не нашёл. Подскажите, как это реализовать.