Gravar multiplos records radioButtonList

19 views
Skip to first unread message

Marisa Lima

unread,
Jan 3, 2017, 6:45:25 AM1/3/17
to YFB - Yii Framework Brasil
Bom dia.

Tenho um formulário com vários radioButtonlist e preciso de inserir estes na base de dados. O meu problema está em conseguir gravar na base de dados, pois só consigo gravar um unico registo.
Tenho o código da seguinte forma:

<?php echo $form->checkBoxList($model, "id_competencia_transversal", CHtml::listData(CompetenciaTransversal::model()->getProfessional(), 'id', 'competencia'),  array(
        'template'=>'{input}{label}',
          'style'=>'float:right;',
          ) ); ?>

No controller o create está assim:

public function actionCreate()
{
$model=new CompetenciaTransversalNivel;
                $valid=true;
// Uncomment the following line if AJAX validation is needed
// $this->performAjaxValidation($model);
               
if(isset($_POST['CompetenciaTransversalNivel']))
{
                       
                        $model->attributes=$_POST['CompetenciaTransversalNivel'];
                            // $valid=$model->validate() && $valid;
                     $valid = $model->validate();    //<-- I'm just guessing this is how you validate >.<

                     if($valid){
                            $tempCount = 0;// needed to ensure the correct index
                            $tempData = 0;

                            for($i=0;$i<count($model->id_competencia_transversal);$i++)
                            {
                               if(isset($model->id_competencia_transversal[$i]))
                               {
                                  $tempData[$tempCount] = $model->id_competencia_transversal[$i];
                               }
                            }
                        for($i=0;$i<count($tempData);$i++)
                        {
                               $model->setIsNewRecord(true);  // To make sure that this would add new record and not update
                               $model->id_competencia_transversal = $tempData[$i];
                               $model->save();
                        }
                            $this->redirect(array('view','id'=>$model->id));
                 }
                    }
$this->render('create',array(
'model'=>$model,
));
}
Mas só neste caso só grava o primeiro registo.


Sidney

unread,
Jan 3, 2017, 7:42:06 PM1/3/17
to yii-framew...@googlegroups.com
Boa noite,

Primeiro uma informação: você está usando Yii 1.1 e não informou no título deste post. O padrão desta lista é a versão atual [2.0]. Sempre que for diferente deverá ser informado no título, por gentileza.

Sobre sua dúvida, acredito que estas duas threads devem resolver seu problema:


Basicamente, o setIsNewRecord() não tem o efeito que você está esperando. Crie um novo model com o operador new.


Atenciosamente,
Sidney Lins
------

--
Yii Framework Brasil
#######################################################################
 
Ao solicitar ajuda:
1. Explique o problema ou dificuldade. Seja específico!
2. Explique o que você *já tentou fazer* para resolver a situação;
3. MOSTRE CÓDIGO, sempre que possível. Esta é uma lista de programação!
 
LEMBRE-SE: se você demonstrar preguiça até mesmo para formular sua pergunta, não espere receber ajuda.
 
#######################################################################
 
04/2011: Anexos foram autorizados em votação. Use com moderação!
.
-
--
---
Você recebeu essa mensagem porque está inscrito no grupo "YFB - Yii Framework Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para yii-framework-brasil+unsub...@googlegroups.com.
Para ver essa discussão na Web, acesse https://groups.google.com/d/msgid/yii-framework-brasil/235de0a2-3d1a-424c-92f0-cfed25ecf388%40googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.

Marisa Lima

unread,
Jan 4, 2017, 4:52:22 AM1/4/17
to YFB - Yii Framework Brasil
Bom dia.

Desde já peço desculpa por não ter indicado a versão do Yii que estou a usar.
Vou ver os links indicados e ver se consigo resolver o meu problema.
Obrigada.
Reply all
Reply to author
Forward
0 new messages