Galera valeu pela ajuda, eu entendi quase tudo que vocês me disseram ,
mas mesmo assi mesmo assim eu aindo to perdido na criação do modelo e
consequente funcionamento correto do meus controllers.
Então eu vou colocar aqui um exemplo de relacionamento que eu tenho
que fazer e peço para que vcs me ajudem a montar o modelo, so pra mim
usar de exemplo e então eu entender melhor, eu vou também colocar como
eu faria, ai se quizerem corrigam ou coloquem como fariam tb que ai eu
vejo o que eu fiz e como vcs fizeram.
Bem é isso e desculpa não ter respondido a todas as ajudas é que eu
anodo sem tempo nenhum pq to fazendo um monte de coisas ao mesmo tempo
e não to podendo me dedicar a outras coisas.
Valeu mesmo, esse grupo é muito bacana.
Tenho as seguintes tabelas:
1. Mensuras (id, medida)
2. Materiais(id, nome)
3. Unidades (id, nome)
4. Setores (id, nome)
5. Funcionarios (id, nome)
(sei que alguns relacionamentos podem parecer estranhos como setores x
unidades ser der n:n e não de 1:n mas é que eu preciso de uma
padronização e preciso gerar estatiscas por setor (exemplo gasto de
material por tipo de setor) então penso : uma unidade tem N setores, 1
setor existe em N unidades então relacionamento de N:N).
Materiais x Unidades = é uma lista de permição de uso
Relacionamentos:
1. Mensuras x Materiais (1:N) -> materiais recebe o campo id_mensura
2. Unidades x Materiais (N:N) -> criar tabela
unidades_materiais(id_setor,id_material)
3. Unidades x Setores (N:N) -> criar tabela
unidades_setores(id_unidade, id_setor)
4. Unidades_Setores x Funcionarios (N:N) -> criar tabela
unidades_setores_funcionarios (id_unidade,id_setor, id_funcionario)
Eu consegui fazer alguns models e ficaram assim:
Mensura:
var $belongsTo = array(
'materiais' =>
array('className' => 'Material',
'foreignKey' => 'id',
'conditions' => '',
'fields' => '',
'order' => '',
'counterCache' => ''
),
);
Materiais:
var $hasOne = array(
'mensuras' =>
array('className' => 'Mensura',
'foreignKey' => 'id',
'conditions' => '',
'fields' => '',
'order' => '',
'dependent' => ''
),
);
var $hasAndBelongsToMany = array(
'Unidade' =>
array('className' => 'Unidade',
'joinTable' =>
'unidades_materiais',
'foreignKey' => 'material_id',
'associationForeignKey' =>
'unidade_id',
'conditions' => '',
'fields' => '',
'order' => '',
'limit' => '',
'offset' => '',
'unique' => '',
'finderQuery' => '',
'deleteQuery' => '',
'insertQuery' => ''
),
);
Unidades:
var $hasAndBelongsToMany = array(
'Material' =>
array('className' => 'Material',
'joinTable' =>
'unidades_materiais',
'foreignKey' => 'unidade_id',
'associationForeignKey' =>
'material_id',
'conditions' => '',
'fields' => '',
'order' => '',
'limit' => '',
'offset' => '',
'unique' => '',
'finderQuery' => '',
'deleteQuery' => '',
'insertQuery' => ''
),
'Setor' =>
array('className' => 'Setor',
'joinTable' =>
'unidades_setores',
'foreignKey' => 'unidade_id',
'associationForeignKey' =>
'setor_id',
'conditions' => '',
'fields' => '',
'order' => '',
'limit' => '',
'offset' => '',
'unique' => '',
'finderQuery' => '',
'deleteQuery' => '',
'insertQuery' => ''
),
);
Setor:
var $hasAndBelongsToMany = array(
'Unidade' =>
array('className' => 'Unidade',
'joinTable' =>
'unidades_setores_funcionarios',
'foreignKey' => 'setor_id',
'associationForeignKey' =>
'unidade_id',
'conditions' => '',
'fields' => '',
'order' => '',
'limit' => '',
'offset' => '',
'unique' => '',
'finderQuery' => '',
'deleteQuery' => '',
'insertQuery' => ''
),
);
Unidades Setor:
//The Associations below have been created with all possible keys,
those that are not needed can be removed
var $belongsTo = array(
'Unidade' =>
array('className' => 'Unidade',
'foreignKey' => 'unidade_id',
'conditions' => '',
'fields' => '',
'order' => '',
'counterCache' => ''
),
'Setor' =>
array('className' => 'Setor',
'foreignKey' => 'setor_id',
'conditions' => '',
'fields' => '',
'order' => '',
'counterCache' => ''
),
);
var $hasAndBelongsToMany = array(
'Funcionario' =>
array('className' => 'Funcionario',
'joinTable' =>
'unidades_setores_funcionarios',
'foreignKey' =>
'unidades_setor_id',
'associationForeignKey' =>
'funcionario_id',
'conditions' => '',
'fields' => '',
'order' => '',
'limit' => '',
'offset' => '',
'unique' => '',
'finderQuery' => '',
'deleteQuery' => '',
'insertQuery' => ''
),
);
Funcionários:
var $hasAndBelongsToMany = array(
'UnidadesSetor' =>
array('className' => 'UnidadesSetor',
'joinTable' =>
'unidades_setores_funcionarios',
'foreignKey' =>
'funcionario_id',
'associationForeignKey' =>
'unidades_setor_id',
'conditions' => '',
'fields' => '',
'order' => '',
'limit' => '',
'offset' => '',
'unique' => '',
'finderQuery' => '',
'deleteQuery' => '',
'insertQuery' => ''
),
'UnidadesSetoresFuncionario' =>
array('className' =>
'UnidadesSetoresFuncionario',
'joinTable' =>
'unidades_setores_funcionarios',
'foreignKey' =>
'funcionario_id',
'associationForeignKey' =>
'funcionario_id',
'conditions' => '',
'fields' => '',
'order' => '',
'limit' => '',
'offset' => '',
'unique' => '',
'finderQuery' => '',
'deleteQuery' => '',
'insertQuery' => ''
),
);
Bem desculpa por algo mo gigantes mas eu to super perdido e gostaria
miuto de um help.
Valeu mesmo.
--~--~---------~--~----~------------~-------~--~----~
Recebeu esta mensagem porque está inscrito em Grupo "Cake PHP Português" do
Grupos Google.
Para enviar mensagens para este grupo, envie um email para
[email protected]
Para anular a inscrição neste grupo, envie um email para [EMAIL PROTECTED]
Para mais opções, visite este grupo em
http://groups.google.com/group/cake-php-pt?hl=pt-PT
-~----------~----~----~----~------~----~------~--~---
- Dúvido na construção de modelos diegon.hernandes
- Re: Dúvido na construção de modelos Bruno S. R.
