Yii2。一种形式的多个模型项

博士

我有这样ActiveForm的看法。如何在此视图中允许用户选择数量的子项(表单项),并向所有数量的子项提交相同的模型项。

<?php $form = ActiveForm::begin([]) ?>
    <div class="child_card">

            <?=$form->field($child, 'first_name', ['inputOptions' => ['placeholder' => 'Enter Your First Name']])?>

                <?=$form->field($child, 'middle_name',
                    ['inputOptions' => ['placeholder' => 'Enter Your Middle Name']])?>

                <?=$form->field($child, 'last_name', ['inputOptions' => ['placeholder' => 'Enter Your Last Name']])?>
                <br>

                <?=$form->field($child, 'gender', [
                    'template'     => '{label} <div class="field">{input}{error}{hint}</div>',
                    'inputOptions' => [
                        'placeholder' => 'Gender',
                    ],
                ])->dropDownList([
                    'male'   => 'Male',
                    'female' => 'Female',
                ], ['class' => 'ui dropdown selection', 'prompt' => 'Gender'])->label('Select your gender')?>

                <?=$form->field($child, 'birthdate_month', [
                    'template'     => '{label} <div class="field">{input}{error}{hint}</div>',
                    'inputOptions' => [
                        'placeholder' => 'Month',
                    ],
                ])->dropDownList([
                    'January'   => 'January',
                    'February'  => 'February',
                    'March'     => 'March',
                    'April'     => 'April',
                    'May'       => 'May',
                    'June'      => 'June',
                    'July'      => 'July',
                    'August'    => 'August',
                    'September' => 'September',
                    'November'  => 'November',
                    'December'  => 'December',
                ], ['class' => 'ui dropdown selection', 'prompt' => 'Month'])->label('Birthdate')?>


                <?=$form->field($child, 'birthdate_day', [
                    'template'     => '{label} <div class="field">{input}{error}{hint}</div>',
                    'inputOptions' => [
                        'placeholder' => 'Day',
                    ],
                ])->dropDownList([
                    '1'  => '1',
                    '2'  => '2',
                    '3'  => '3',
                    '4'  => '4',
                    '5'  => '5',
                    '6'  => '6',
                    '7'  => '7',
                    '8'  => '8',
                    '9'  => '9',
                    '10' => '10',
                    '11' => '11',
                    '12' => '12',
                    '13' => '13',
                    '14' => '14',
                    '15' => '15',
                    '16' => '16',
                    '17' => '17',
                    '18' => '18',
                    '19' => '19',
                    '20' => '20',
                    '21' => '21',
                    '22' => '22',
                    '23' => '23',
                    '24' => '24',
                    '25' => '25',
                    '26' => '26',
                    '27' => '27',
                    '28' => '28',
                    '29' => '29',
                    '30' => '30',
                    '31' => '31',
                ], ['class' => 'ui dropdown selection', 'prompt' => 'Day'])->label(false)?>

                <?=$form->field($child, 'birthdate_year', [
                    'template'     => '{label} <div class="field">{input}{error}{hint}</div>',
                    'inputOptions' => [
                        'placeholder' => 'Year',
                    ],
                ])->dropDownList([
                    '2016' => '2016',
                    '2015' => '2015',
                    '2014' => '2014',
                    '2013' => '2013',
                    '2012' => '2012',
                    '2011' => '2011',
                    '2010' => '2010',
                    '2009' => '2009',
                    '2008' => '2008',
                    '2007' => '2007',
                    '2006' => '2006',
                    '2005' => '2005',
                    '2004' => '2004',
                    '2003' => '2003',
                    '2002' => '2002',
                    '2001' => '2001',
                    '2000' => '2000',
                    '1999' => '1999',
                    '1998' => '1998',
                    '1997' => '1997',
                    '1996' => '1996',
                    '1995' => '1995',
                ], ['class' => 'ui dropdown selection', 'prompt' => 'Year'])->label(false)?>

                <?=$form->field($child, 'country_of_birth',
                    ['inputOptions' => ['placeholder' => "Enter Your Child's Country of Birth"]])
                        ->label('Your Child’s Country of Birth:')?>

                <?=$form->field($child, 'city_of_birth',
                    ['inputOptions' => ['placeholder' => "Enter Your Child's City of Birth"]])
                        ->label('Your Child’s City/Town of Birth:')?>
        </div>
        <?php ActiveForm::end(); ?>
博士

答案是使用简单的for循环。

视图示例

<?php $form = ActiveForm::begin() ?>

<?php foreach ($children as $i => $child): ?> //there are multiple persons (children)

...

 <?=$form->field($child, "[$i]birthdate_month", [...])->dropDownList([
                    '1'  => 'January',
                    ...
                ])?>

...

<?php endforeach; ?>

...

<?=Html::submitButton('Save', ['class' => 'ui primary button big'])?>
...

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

并在控制器中使用

Person::loadMultiple($children, Yii::$app->request->post());

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Yii2-以一种形式保存多个相关的ActiveRecord模型

来自分类Dev

在 Yii2 中将数据从一种形式传递到另一种形式

来自分类Dev

cakephp:使用一种形式保存到多个模型

来自分类Dev

cakephp:使用一种形式保存到多个模型

来自分类Dev

仅对一种布局yii2禁用css

来自分类Dev

仅对一种布局yii2禁用css

来自分类Dev

Yii2:如何从一种形式在两个表中保存不同的数据?

来自分类Dev

symfony2:多个实体的一种形式

来自分类Dev

Yii2同一模型的多个实例

来自分类Dev

同一ActiveForm yii2上的多个模型

来自分类Dev

如何自动将数据从一种表格输入到另一种表格 yii2

来自分类Dev

一种形式的多个MySQL行

来自分类Dev

以一种形式编辑多个实体

来自分类Dev

一种形式的多个变量:选择

来自分类Dev

一种形式的多个实体

来自分类Dev

一种jsp形式的多个动作

来自分类Dev

以一种形式创建多个用户

来自分类Dev

一种更新多个模型的表格

来自分类Dev

yii2-如何以一种形式保存输入并自动更新另一种表格

来自分类Dev

雄辩地从一种形式在多个模型中创建记录

来自分类Dev

以一种html形式处理多种模型形式

来自分类Dev

yii2-多行从一种形式加载到同一表中

来自分类Dev

将值从一种模型传递到另一种模型的形式

来自分类Dev

Ember数据2-以一种形式提交两个关联的模型

来自分类Dev

Yii2如何在一个GridView中使用两种不同的模型

来自分类Dev

Yii2 在一个搜索模型中组合多个模型

来自分类Dev

获取2种不同模型的数据-Yii2

来自分类Dev

以一种形式编辑两个模型

来自分类Dev

春季:一种JPA模型,许多JSON表示形式