Oi, diegon.hernandes.

Segue algumas sugestões para você sobre o CakePHP.

Padrões do Cake para a criação dos modelos, controllers e views.

Modelos: Nome do modelo deve ser sempre no singular e com letras
minúsculas. No seu caso, arquivo deve se chamar material.php. Se a
tabela Material possuísse um tipo, por exemplo, material_tipo, seu
modelo se chamaria material_tipo.php
Dentro do seu modelo (material.php), sua classe deve se chamar
Material. Seguindo os padrões do Cake, o nome de uma classe deve
começar com letra maíuscula e ser no singular como no exemplo abaixo.

Controllers: Nome do controlles deve ser sempre no singular e com
letras minúsculas. No seu caso, arquivo deve se chamar
material_controller.php. Se a tabela Material possuísse um tipo, por
exemplo, material_tipo, seu controller se chamaria
material_tipo_controller.php

Views: Dentro da pasta "Views", você deve criar uma nova pasta chamada
materiais (Seguindo o padrão do Cake para as Views: elas devem ser
sempre no plural e com letras minúsculas. Dentro da pasta "materiais"
que você acabou de criar estarão todos os outros arquivos referentes
ao cadastro, edição, etc de materiais. Costumo chamar minha página
inicial de qualquer cadastro como index.thtml. O Cake usa a extensão
".thtml". Se a tabela Material possuísse um tipo, por exemplo,
material_tipo, sua pasta se chamaria material_tipos.

Use $belongsTo para relacionamentos 1:N e $hasAndBelongsToMany em
relacionamentos N:N.
Achei que seu modelo tem muita coisa que não está sendo utilizada.
Esse exemplo de modelo que apresentei, usa apenas o essencial. Mas
isso não o impede de deixar como estava antes.


<?PHP
class Material extends AppModel{
        public $name = 'Material';  /* Este é o nome da sua classe */
        public $useTable = 'material'; /* Este é o nome da sua tabela no
banco de dados */
        public $primaryKey = 'mat_id'; /* Esta é a Primary Key da sua tabela
Material */
        public $useDbConfig = 'autenticado'; /* Este é o nome que você
configurou para o Cake acessar seu banco de dados. Veja seu arquivo
database.php em ../src/config/database.php */
        public $belongsTo   = array(
                                        'Mensura' => array(
                                        'className' => 'Mensura',
                                        'foreignKey' => 'men_id'),

                                        /* Faça o mesmo que eu fiz acima para 
todas as tabelas que
possuem relacionamento com a tabela Material */
                                ); //Fim do array

        );
        public $validate = array(
                'men_id'          => VALID_NOT_EMPTY, /* Validação da chave 
primária
da tabela Mensura. Aqui ela é ForeignKey. */
                'mat_dsc_nome'    => VALID_NOT_EMPTY,
                'mat_dsc_xxx'     => VALID_NOT_EMPTY,
                /* Aqui você vai colocando todos os campos da sua tabela 
Material
que você quer que o Cake valide. */
        );
}
?>

Bom, se você ainda tiver alguma dúvida é só mandar.

On 8 nov, 18:12, "diegon.hernandes" <[EMAIL PROTECTED]> wrote:
> 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
-~----------~----~----~----~------~----~------~--~---

Responder a