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();?>
我只想将 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();?>