@alekskondr
php, javascript, yii2, drupal, MQL

Почему контроллер не видит данные с формы в yii2?

Логика такова приложения: надо сделать потверждение введя определенный номер в поле формы, приходящей уже с данными. Есть контроллер
public function actionCreate()
    {
        
         $model = new Transactions();

if ($model->load(Yii::$app->request->post()) && $this->applyOperation($model)) {
               $model->save();
            return $this->redirect(['view', 'id' => $model->id]);      
            } else {
                return $this->render('create', [
                    'model' => $model,
                ]);
            }


Еще один контроллер с выполнением операций(здесь проблема)
private function applyOperation($model) {
 $code = $model->code;
        $password = 123;
if($password == $code ){
   return $this->redirect(['trans']);
}


форма
<?php $form = ActiveForm::begin(); ?>

<?= Html::activeTextInput($model, 'account', [ 'value' => "$acc",'readonly' => 'readonly']) ?>
<?= Html::activeTextInput($model, 'sum', [  'value' => "$su",'readonly' => 'readonly']) ?>
<?= Html::activeTextInput($model, 'description', [ 'value' => "$desc",'readonly' => 'readonly']) ?>
<?= Html::activeTextInput($model, 'sender', [ 'value' => "$se",'readonly' => 'readonly']) ?>

<?= $form->field($model, 'code')->textInput() ?>
<div class="form-group">
        <?= Html::submitButton($model->isNewRecord ? Yii::t('frontend', 'Fill up balance') : Yii::t('frontend', 'Update'), ['class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary']) ?>
    </div>

    <?php ActiveForm::end(); ?>


Проблема в том что в методе applyOperation() $code = $model->code; равен почему-то NULL, хотя данные вводятся и редирект не проходит.
Немогу понять в чем проблема
  • Вопрос задан
  • 567 просмотров
Пригласить эксперта
Ответы на вопрос 1
webinar
@webinar Куратор тега Yii
Учим yii: https://youtu.be/-WRMlGHLgRg
Попробуйте так:
public function actionCreate()
    {
        
         $model = new Transactions();

if ($model->load(Yii::$app->request->post()) {
$this->applyOperation($model);
               $model->save();
            return $this->redirect(['view', 'id' => $model->id]);      
            } else {
                return $this->render('create', [
                    'model' => $model,
                ]);
            }

а applyOperation так:
private function applyOperation($model) {
 $code = $model->code;
        $password = 123;
if($password == $code ){
   return $this->redirect(['trans']);
}else{
return true;
}


Да, и у вас там лишняя скобка перед &&
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы