Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Opa, como vão?
Tô com uma dúvida de um relacionamento entre as tabelas que nunca vi antes... =/
Acredito que seja entre três tabelas, mas não estou conseguindo entendê-lo melhor, entao nem consegui gerar a aplicação no bake sem entender isso primeiro... =/
A imagem é simplesmente a apresentada abaixo:
/applications/core/interface/imageproxy/imageproxy.php?img=http://i40.servimg.com/u/f40/11/80/81/44/jogo10.jpg&key=d98d7c50d9b20ede1634b467d6cb4d09f28f1a9a8122ecc8d1c2b1eabd3f67c8" alt="jogo10.jpg" />
Vamos às explicações:
3 - São os jogos
1 - São os níveis deste jogo (Tetra Eras, Elements e Begins)
2 - São as salas de um nível, o nível mostrado na imagem é o Tetra Eras...
Bom... até aí tudo normal, nada demais... só que precisamos:
* Listá-las por jogo,
* Listá-las por nível deste jogo.
Criei alguns relacionamentos (na teoria), pois nem gerei a app ainda... eu esperava usar o cake bake, pra evitar fazer isso no braço, e agilizando assim...
Model jogo.php
var $hasMany = array(
'Sala' => array(
'className' => 'Sala',
'foreignKey' => 'jogo_id',
'dependent' => false,
'conditions' => '',
'fields' => '',
'order' => '',
'limit' => '',
'offset' => '',
'exclusive' => '',
'finderQuery' => '',
'counterQuery' => ''
)
);
Model sala.php
var $belongsTo = array(
'Jogo' => array(
'className' => 'Jogo',
'foreignKey' => 'jogo_id',
'conditions' => '',
'fields' => '',
'order' => ''
),
);
var $hasAndBelongsToMany = array(
'Nivel' => array(
'className' => 'Nivel',
'joinTable' => 'niveis_usr_rooms',
'foreignKey' => 'sala_id',
'associationForeignKey' => 'nivel_id',
'unique' => true,
'conditions' => '',
'fields' => '',
'order' => '',
'limit' => '',
'offset' => '',
'finderQuery' => '',
'deleteQuery' => '',
'insertQuery' => ''
)
);
Model niveis.php
var $hasAndBelongsToMany = array(
'Sala' => array(
'className' => 'Sala',
'joinTable' => 'niveis_salas',
'foreignKey' => 'nivel_id',
'associationForeignKey' => 'sala_id',
'unique' => true,
'conditions' => '',
'fields' => '',
'order' => '',
'limit' => '',
'offset' => '',
'finderQuery' => '',
'deleteQuery' => '',
'insertQuery' => ''
)
);
E o model niveis_salas.php usa scaffold, entao nem tem necessidade de postá-lo....
Espero ter ajuda de alguém sábio o bastante para compreender que para facilitar as consultas apresentadas no problema, preciso primeiro criar e organizar os relacionamentos corretamente... ;)
Obrigado iMasters,.. sempre buscando soluções! :joia:
Carregando comentários...