Yii Framework Forum: Como adicionar numa tabela com (chave primária composta) de tres campos? - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Como adicionar numa tabela com (chave primária composta) de tres campos? Usando CActiveRecord Rate Topic: -----

#1 User is offline   Armando 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 80
  • Joined: 11-November 08
  • Location:Brazil - Rio de Janeiro

Posted 10 November 2009 - 01:29 PM

Galera, tenho uma tabela que possui "chave primária composta" usando três campos e não estou conseguindo salvar usando CActiveRecord.

Alguém já passou por isso?

Tentei sobrescrever o método safeAttributes no modelo e nada.

A chave primária composta usa "id_serie", "id_segmento" e "id_disc". O restante dos campos na tabela aceitam "NULL" como entrada.

Desta forma não funciona:
...
foreach ($arrIdDisc as $k => $idDisc) {
    $model = new GradeDiscSerie;
    $model->id_serie = $serie->id;
    $model->id_segmento = $serie->id_segmento;
    $model->id_disc = $idDisc;
    //CVarDumper::dump($model->attributes, 5, true); die;
   $model->save();
}


Já desta forma funciona:

...
foreach ($arrIdDisc as $k => $idDisc) {
    $sql = "INSERT INTO `grade_disc_serie` (id_serie, id_disc, id_segmento) VALUES
    ($serie->id, $idDisc, $serie->id_segmento)";
    Yii::app()->db->createCommand($sql)->execute();
}

0

#2 User is offline   Daniel Augusto Bastos 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 347
  • Joined: 25-May 09
  • Location:Rio de Janeiro - Brasil

Posted 10 November 2009 - 01:44 PM

Verifica se a propriedade errors ta retornando alguma coisa depois do save e retorna pra gente. 





Every solution creates a problem.
twitter.com/nenhumnick
0

#3 User is offline   Armando 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 80
  • Joined: 11-November 08
  • Location:Brazil - Rio de Janeiro

Posted 10 November 2009 - 02:08 PM

View PostDaniel A. Bastos, on 10 November 2009 - 01:44 PM, said:

Verifica se a propriedade errors ta retornando alguma coisa depois do save e retorna pra gente. 



Vi o erro :D
array
(
    [discUso] => array
    (
        [0] => 'Disciplinas na grade não pode ser vazio.'
    )
)


"discUso" é um atributo "personalidado (que não pertence a tabela)" que adicionei no modelo para usar no form e ele é requerido na validação.

Vlw Daniel! Está funcionando perfeitamente!
0

#4 User is offline   Daniel Augusto Bastos 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 347
  • Joined: 25-May 09
  • Location:Rio de Janeiro - Brasil

Posted 10 November 2009 - 02:10 PM

disponha :)
Every solution creates a problem.
twitter.com/nenhumnick
0

#5 User is offline   Armando 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 80
  • Joined: 11-November 08
  • Location:Brazil - Rio de Janeiro

Posted 10 November 2009 - 02:18 PM

Então agora ficou assim:
foreach ($arrIdDisc as $k => $idDisc) {
    $model = new GradeDiscSerie;
    $model->id_serie = $serie->id;
    $model->id_segmento = $serie->id_segmento;
    $model->id_disc = $idDisc;
    $model->discUso = $idDisc; // Somente para efeito de validacao
    $model->save();
}

0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users