Como almacenar varios registros desde un mismo formulario o vista

Hola.

Lo que pasa es que tenemos un formulario el cual contiene unos campos normales y contiene un conjunto de checkbox los cuales se listan y son traídos de otra tabla (llamemosla tabla A) como se lo mostramos en la imagen adjunta, al enviar el formulario, este quedara guardado en una tabla B y tendremos una tabla C la cual será normalizadora y se llenará con los checkbox que se seleccionen y entonces contendra las llaves foraneas de la tabla A y tabla B como se muestra en la segunda imagen, la pregunta es si es posible hacer este almacenamiento utilizando el modelo de la tabla C sin necesidad de hacer un recorrido con PHP normal, algo asi como un arreglo de modelos (no se si la expresion sea bien utilizada).

Muchas gracias por la ayuda.

Hola

creo que vas a tener que recorrer el arreglo de la tabla A y si esta seleccionado, hacer un insert en la tabla C

lo que podes tratar de hacer es hacer un foreach para cada columna de la tabla A en forma generica

algo asi (no probado)




                   $model='TablaA'; //el nombre del modelo de la tabla A


                   $tablaA =$_POST['TablaA']; // leo el post completo (seleccionados y no seleccionados )


                   //arreglo con las columnas de la tabla A

                    $columnas_aux=CActiverecord::model($model)->getMetaData()->columns;

                    //recorrer y asignar solo el nombre

                   $columnas=array();

                   foreach($columnas_aux as $col) {

                       $columnas[]=$col->name;

                   }

                   

                  foreach ($columnas as $col_name) {

                        

                        if ( $tablaA[$col_name] )   {

                                tablaC=new TablaC();

                                //asignar valores

                                tablaC->save();

                        }