将下拉列表中选择的 id 发送到操作 Yii2
Send id chosen in dropdown list to action Yii2
我有一个简短的问题。我在 _form.php
中实现了一个下拉列表。现在我的 action crate 不能再正常工作了。我不确定我向操作发送请求是否有问题。但它不再真正发挥作用了。
使用 $form->field($model, 'team_idteam')->textInput()
它工作得很好。所以,这就是我目前在 _form.php
:
上的内容
<div class="user-has-team-form">
<?php $form = ActiveForm::begin(); ?>
<?= $form->field($model, 'team_idteam')->textInput() //<-- This works perfectly. ?>
<?= $form->field($model, 'teamIdteam')->dropDownList(ArrayHelper::map(Team::find()->all(), 'idteam', 'name')) <-- This does not work at all ?>
<?= $form->field($model, 'user_iduser')->textInput() ?>
<?= $form->field($model, 'oncallduty')->checkbox() ?>
<div class="form-group">
<?= Html::submitButton(Yii::t('app', 'Save'), ['class' => 'btn btn-success']) ?>
</div>
<?php ActiveForm::end(); ?>
</div>
我的 actionCreate 看起来像这样:
public function actionCreate()
{
$model = new UserHasTeam();
if ($this->request->isPost) {
Yii::info("Test1"); // <-- It get's up to this point.
if ($model->load($this->request->post()) && $model->save()) {
Yii::info("Test2");
return $this->redirect(['view', 'team_idteam' => $model->team_idteam, 'user_iduser' => $model->user_iduser]);
}
} else {
$model->loadDefaultValues();
}
return $this->render('create', [
'model' => $model,
]);
}
视觉效果完美,我什至可以选择不同的团队。如果我创建新团队或删除旧团队,它们也会显示或不显示。我不得不承认我在这里有点迷路。
编辑
我在 $model = new UserHasTeam();
之后转储了 $_POST
数组,它给出了以下数组:
[
'_csrf' => '0rkl0EAuFwjy9kdJNVQfVTQOkT22Kzo8bdvLAg2X0P_i0Ui-DEAkQ6WxfzsEAkwfBE_1UvNCDlsEjLtOefXmyA==',
'UserHasTeam' => [
'teamIdteam' => '3',
'user_iduser' => '1',
'oncallduty' => '0',
],
]
是的。我时不时是个白痴。
我是这样解决的:
<?= $form->field($model, 'team_idteam')->dropDownList(ArrayHelper::map(Team::find()->all(), 'idteam', 'name')) ?>
我有一个简短的问题。我在 _form.php
中实现了一个下拉列表。现在我的 action crate 不能再正常工作了。我不确定我向操作发送请求是否有问题。但它不再真正发挥作用了。
使用 $form->field($model, 'team_idteam')->textInput()
它工作得很好。所以,这就是我目前在 _form.php
:
<div class="user-has-team-form">
<?php $form = ActiveForm::begin(); ?>
<?= $form->field($model, 'team_idteam')->textInput() //<-- This works perfectly. ?>
<?= $form->field($model, 'teamIdteam')->dropDownList(ArrayHelper::map(Team::find()->all(), 'idteam', 'name')) <-- This does not work at all ?>
<?= $form->field($model, 'user_iduser')->textInput() ?>
<?= $form->field($model, 'oncallduty')->checkbox() ?>
<div class="form-group">
<?= Html::submitButton(Yii::t('app', 'Save'), ['class' => 'btn btn-success']) ?>
</div>
<?php ActiveForm::end(); ?>
</div>
我的 actionCreate 看起来像这样:
public function actionCreate()
{
$model = new UserHasTeam();
if ($this->request->isPost) {
Yii::info("Test1"); // <-- It get's up to this point.
if ($model->load($this->request->post()) && $model->save()) {
Yii::info("Test2");
return $this->redirect(['view', 'team_idteam' => $model->team_idteam, 'user_iduser' => $model->user_iduser]);
}
} else {
$model->loadDefaultValues();
}
return $this->render('create', [
'model' => $model,
]);
}
视觉效果完美,我什至可以选择不同的团队。如果我创建新团队或删除旧团队,它们也会显示或不显示。我不得不承认我在这里有点迷路。
编辑
我在 $model = new UserHasTeam();
之后转储了 $_POST
数组,它给出了以下数组:
[
'_csrf' => '0rkl0EAuFwjy9kdJNVQfVTQOkT22Kzo8bdvLAg2X0P_i0Ui-DEAkQ6WxfzsEAkwfBE_1UvNCDlsEjLtOefXmyA==',
'UserHasTeam' => [
'teamIdteam' => '3',
'user_iduser' => '1',
'oncallduty' => '0',
],
]
是的。我时不时是个白痴。
我是这样解决的:
<?= $form->field($model, 'team_idteam')->dropDownList(ArrayHelper::map(Team::find()->all(), 'idteam', 'name')) ?>