Bom dia pessoal, tudo bem, tive testando esse FrameWork PHP Yii, e achei muito irado.
Fiz o tutorialzinho la do blog de uma primeira aplicação e tal, achei muito simples e muito bom, e logo depois fui procurar algum tutoria falando sobre relacionamento e tudo mais, não encontrei, fui no forum e vi que algumas pessoas estavam perguntando sobre o relacionamento também, e achei alguns topicos no blog como esse (http://www.yiiframew...CHasOneRelation).
Porem não entendi o que esta nele Public Properties e também Public Methods tem alguns links mas não consegui criar um relacionamento tipo uma tabela de Generos Musicais e outra tabela de Cds.
Como eu faria???
Obrigado a toda a comunidade...
Page 1 of 1
perguntinha sobre modulos relacionados.
#2
Posted 16 July 2009 - 03:22 PM
Você define os relacionamentos no método relations(), em cada modelo.
No caso que você citou, ficaria +- assim:
class CD extends ActiveRecord {
...
public function relations() {
return array(
'genero'=>array(self::BELONGS_TO, 'Genero', 'id_genero'),
);
}
...
}
Onde genero é o relacionamento do modelo Cd com o modelo Genero. Nesse relacionamento, especifico que o CD pertence (BELONGS_TO) a um Gênero.
Isso criará automaticamente uma propriedade chamada "genero", no seu modelo que poderá ser utilizada para acessar um instância do modelo Genero:
$cd->genero //retorna uma instância de Genero
Basicamente é isso, para outras informações, incluindo outros tipos de relacionamentos, você pode consultar a documentação no guia:
http://www.yiiframew...de/database.arr.
No caso que você citou, ficaria +- assim:
class CD extends ActiveRecord {
...
public function relations() {
return array(
'genero'=>array(self::BELONGS_TO, 'Genero', 'id_genero'),
);
}
...
}
Onde genero é o relacionamento do modelo Cd com o modelo Genero. Nesse relacionamento, especifico que o CD pertence (BELONGS_TO) a um Gênero.
Isso criará automaticamente uma propriedade chamada "genero", no seu modelo que poderá ser utilizada para acessar um instância do modelo Genero:
$cd->genero //retorna uma instância de Genero
Basicamente é isso, para outras informações, incluindo outros tipos de relacionamentos, você pode consultar a documentação no guia:
http://www.yiiframew...de/database.arr.
#3
Posted 17 July 2009 - 06:57 AM
Boa, consegui mano.
Porem só consegui se o nome do campo de relacionamento for igual nas duas tabelas no caso na tabela cd campo id_genero e na tabela genero campo id_genero.
Teria como fazer com o nome dos campos diferentes?
Porem só consegui se o nome do campo de relacionamento for igual nas duas tabelas no caso na tabela cd campo id_genero e na tabela genero campo id_genero.
Teria como fazer com o nome dos campos diferentes?
#4
Posted 17 July 2009 - 11:24 AM
Pode sim, desde que o relacionamento entre chaves primárias e estrangeiras esteja bem definido entre as tabelas.
No exemplo que passei, 'id_genero' é o nome do campo que é chave estrangeira na tabela cd. O AR do Yii irá relacionar este campo com a chave primária da tabela informada, no caso Genero, independente do nome dela.
Se estiver utilizando a versão mais atualizada e gerando suas classes através do yiic, ele já deveria gerar os relacionamentos automaticamente para você.
No exemplo que passei, 'id_genero' é o nome do campo que é chave estrangeira na tabela cd. O AR do Yii irá relacionar este campo com a chave primária da tabela informada, no caso Genero, independente do nome dela.
Se estiver utilizando a versão mais atualizada e gerando suas classes através do yiic, ele já deveria gerar os relacionamentos automaticamente para você.
#5
Posted 23 July 2009 - 07:06 AM
Entendi, mas estou trabalhando com mysql e eu crio as chaves estrangeiras la pelo phpmyadmin, alguem ai ja criou por la também se sim conseguiu criar o modulo ja relacionado?
#6
Posted 23 July 2009 - 07:55 AM
harry, on 23 July 2009 - 07:06 AM, said:
Entendi, mas estou trabalhando com mysql e eu crio as chaves estrangeiras la pelo phpmyadmin, alguem ai ja criou por la também se sim conseguiu criar o modulo ja relacionado?
Mesmo você criando as chaves estrangeiras pelo phpMyAdmin elas não deixam de ser chaves estrangeiras. Aqui o yiic já gera os relacionamentos corretamente, mas eu soh mando ele gerar o CRUD depois que minha tabela tá pronta com todos os relacionamentos, chaves estrangeiras e etc.
#7
Posted 23 July 2009 - 08:13 AM
Ae pessoa, consegui, não sei o que era, mas acho que eu etava fazendo o relacionamento errado no mysql, agradeço a todos ai...
Share this topic:
Page 1 of 1

Help













