Yii2 как передать переменную из поля зрения и отправить в другой источник - PullRequest
0 голосов
/ 12 апреля 2019

все

Моя точка зрения такова.Мне нужно создать пользовательский отчет, передав значение из $ valiable в поле зрения -> controller

. Мой вопрос в том, как передать значение из $ valiable

, теперь я могу получить значение из другой системы с помощью исправить значение в $ valiable в controller.php

, но мне нужно передать $ valiable из view.php, выбранного после кнопки отправки.

как-то так

enter image description here

вот мой код

index.php

    <?php $form = ActiveForm::begin(); ?>
          <div class="col-xs-12 col-sm-6 col-md-3">
           <label class="control-label"> field1 </label>
             <?php echo Select2::widget([
                'name' => 'field1',
                'data' =>  Report::itemAlias('field1'),
                'options' => [
                    'placeholder' => 'Select Cost Center...',
                ],
                    'pluginOptions' => ['allowClear' => true,],
                ]); ?>
            </div>
            <div class="col-xs-12 col-sm-6 col-md-3">
           <label class="control-label"> field2 </label>
             <?php echo Select2::widget([
                'name' => 'field2',
                'data' => Report::itemAlias('field2'),
                'options' => [
                    'placeholder' => 'Select Fund Center...',
                ],
                    'pluginOptions' => ['allowClear' => true,],
                ]); ?>
            </div>
        <div class="form-group" >
           <?= Html::submitButton('process', ['class' => 'btn btn-warning ']) ?>  
        </div>
    <?php ActiveForm::end(); ?>

в ReportController.php

public function actionIndex ()
        {
            $array = [];  // for array result 
            $field1 =  '';  // if fix value $field1 =  'a'; can pass a to $result
            $field2 =  '';  // if fix value $field2 =  'b'; can pass b to  $result

                 if (Yii::$app->request->isPost)  
             {
                $FISTL =  $_POST['field1'];  // view ~field1
                $FIPEX =  $_POST['field2'];  // view ~field2
             }

        if($field1 !== '' && $field1 !== ''){    *// add if condition for get variable*
            $connection = Yii::$app->sconnection->connectionToAnotherSystem(); // connection to another system
            $result = $connection->getValue([     
                'field1' => $field1,    // if fix value $field1 =  'a'; can pass a to $result
                'field2' => $field2,    // if fix value $field2 =  'b'; can pass b to  $result
            ]);
            $array = array(['value' =>$result]);//return value from another system 

            } $dataProvider = new ArrayDataProvider([
                'allModels' => $array,
            ]);
            return $this->render('index',
                [
                'dataProvider' => $dataProvider, // true data
                ]);
        }

РЕДАКТИРОВАТЬ: я получил то, что я хочу.в controller.php добавить условие if.

1 Ответ

0 голосов
/ 13 апреля 2019

Я совсем не понимаю

Но если у вас есть ответ другой системы в $ result, он выглядит как массив;затем вы присваиваете массив переменной $ array, который имеет ассоциативное значение с именем 'value'.Способ получения значения field1:

$array['value']['field1']

В вашем php-файле вида должен быть GridView, подобный этому

<?= GridView::widget([
  'dataProvider' => $dataProvider,
  'columns' => [
    ...
    'value.field1',
    'value.field2',
    ...
  ],
]); ?>

Это должно работать

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...