Yii2。 ActiveFrom。在没有模型数组的情况下将 GET 参数添加到 URL

Yii2. ActiveFrom. Add GET-param to URL without model array

我只想将 GET 参数从用户添加到 URL。 我使用第三方模块操作,所以我不想更改

的签名
public function actionReset($id, $code)

我在控制器中有这样的模型

$model = new DynamicModel([
    'code'
]);
$model->addRule(['code'], 'required');
$model->addRule(['code'], 'string');

这样ActiveForm

<?php $form = ActiveForm::begin([
    'method' => 'get',
    'action' => [
        \yii\helpers\Url::current()
    ]
]) ?>

<?php echo $form->field($model, 'code')->textInput()->label(false); ?>

<?php echo Html::submitButton(Yii::t('user', 'Continue')); ?>

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

并且通过这样的实现,它通过一个数组包装器传递:

是否可以在没有自定义 js 的情况下避免这种包装器?

可能是您可以在 activeForm 配置中指定它

       <?php $form = ActiveForm::begin([
          'method' => 'get',
          'action' => [
              \yii\helpers\Url::current(), 'your_att' => $your_value
          ]
      ]) ?>

或数组格式

      <?php $form = ActiveForm::begin([
          'method' => 'get',
          'action' => [
              \yii\helpers\Url::current(), ['your_att' => $your_value],
          ]
      ]) ?>

我找到了答案here

现在我的视图代码看起来像

            <?=Html::beginForm(Url::current(), 'get', ['csrf' => false]);?>
            <?=Html::input('text', 'code', 'test')?>

            <?=Html::a('Submit', '', [
                'data' => [
                    'method' => 'get',
                ]
            ])?>
            <?=Html::endForm();?>