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).
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();
}