保存列表框中的多个选择-Yii2

保存列表框中的多个选择-Yii2,yii2,yii2-advanced-app,yii2-validation,Yii2,Yii2 Advanced App,Yii2 Validation,我已经使列表框依赖于下拉列表,当从下拉列表中选择一个选项时,会给我一个添加到列表框中的数据列表,它可以保存单个选项,但在尝试保存多个选项时会出现问题,我无法保存多个选项,我试图在控制器中添加foreach,但它抛出了一个错误 下拉列表 <?php echo $form->field($model, 'group_id')->widget(Select2::classname(), [ 'data' => $seccion->lgrupo, //I get

我已经使列表框依赖于下拉列表,当从下拉列表中选择一个选项时,会给我一个添加到列表框中的数据列表,它可以保存单个选项,但在尝试保存多个选项时会出现问题,我无法保存多个选项,我试图在控制器中添加foreach,但它抛出了一个错误

下拉列表

 <?php echo $form->field($model, 'group_id')->widget(Select2::classname(), [
    'data' => $seccion->lgrupo, //I get the group list
    'size' => Select2::MEDIUM,
    'theme' => Select2::THEME_BOOTSTRAP,

    'options' => [
        'placeholder' => '-- '.Yii::t('backend', 'Select').' --',
        'onchange'=>'
            $.post( "lists?id="+$(this).val(), function( data ) {//I get the list of people registered in the group and send it to the listbox
            $( "select#assignment-user_id" ).html( data );
        });',
        ],
    'pluginOptions' => [
        'allowClear' => true,
    ],
    'addon' => [
        'prepend' => [
            'content' => Html::icon('building')
        ],
    ]
]); ?>
表格


我希望你能告诉我我做错了什么。

移动这个
返回$this->重定向(['view','id'=>$model->id_group])在foreach之后。保存第一个项目时,将重定向用户。。因此,foreach被中断。我出现错误“尝试分配非对象的属性'assign_group_id'”“$as”不是对象,它被选择为'user_id'。也许你必须创建你的类的对象并分配给它用户id和分配组id。我不知道你的数据库结构和逻辑我主要处理两个模型,首先我保存在组中,然后分配在组中。我已经用表关系更新了帖子。现在,如果保存的多个表有效,谢谢。我在修改部分遇到了一个问题,我创建了函数
$this->findModelAssignment($id)但是它没有给我带来数据,关于如何在这一部分中实现它有什么建议吗?没有看到我在控制器
中添加的这个函数受保护的函数findModelAsignAgencion($id){if($model=AsignarExamenAlumno::findOne($id))!=null){return$model;}抛出新的NotFoundHttpException(“请求的页面不存在”。);}
在哪里调用此函数?在控制器的修改函数中选中
$id
value
public function actionCreate()
{
    $model = new Groups();
    $model2 = new Assignment();
    $seccion = new Group();

    if ($model->load(Yii::$app->request->post()) && $model2->load(Yii::$app->request->post())) {

        if ($model->save(false)) {
            foreach ($model2->users_id as $user_id) {
                $assignmentModel = new Assignment();
                $assignmentModel->user_id= $user_id;
                $assignmentModel->assign_group_id = $model->id_group_list;
                //$assignmentModel->area= '';  //if you want to set some value to these fields
                //$assignmentModel->assignment= '';
                if ($assignmentModel->save()) {
                    
                } else {
                    // error in saving model
                }
            }
            return $this->redirect(['view', 'id' => $model->id_group]);
        }
    }
    return $this->render('create', [
        'model' => $model,
        'model2' => $model2,
        'seccion' => $seccion,
    ]);
}
public function actionCreate()
{
    $model = new Groups();
    $model2 = new Assignment();
    $seccion = new Group();

    if ($model->load(Yii::$app->request->post()) && $model2->load(Yii::$app->request->post())) {

        if ($model->save(false)) {
            foreach ($model2->users_id as $i => $as) {
                $as->assign_group_id = $model->id_group_list;
                if ($model2->save()) {
                    
                } else {
                    // error in saving model
                }
            }
            return $this->redirect(['view', 'id' => $model->id_group]);
        }
    }
    return $this->render('create', [
        'model' => $model,
        'model2' => $model2,
        'seccion' => $seccion,
    ]);
}
public function actionCreate()
{
    $model = new Groups();
    $model2 = new Assignment();
    $seccion = new Group();

    if ($model->load(Yii::$app->request->post()) && $model2->load(Yii::$app->request->post())) {

        if ($model->save(false)) {
            foreach ($model2->users_id as $user_id) {
                $assignmentModel = new Assignment();
                $assignmentModel->user_id= $user_id;
                $assignmentModel->assign_group_id = $model->id_group_list;
                //$assignmentModel->area= '';  //if you want to set some value to these fields
                //$assignmentModel->assignment= '';
                if ($assignmentModel->save()) {
                    
                } else {
                    // error in saving model
                }
            }
            return $this->redirect(['view', 'id' => $model->id_group]);
        }
    }
    return $this->render('create', [
        'model' => $model,
        'model2' => $model2,
        'seccion' => $seccion,
    ]);
}