Informática Numaboa - Tutoriais e Programação
Componente 1.5 MVC - Funcionalidade admin II
Qua 23 Jan 2008 22:31 |
- Detalhes
- Categoria: Joomla
- Atualização: Segunda, 02 Julho 2012 19:32
- Autor: vovó Vicki
- Acessos: 15279
Atualizando o modelo
O modelo, que funciona como um distribuidor de ferramentas de trabalho, precisa ser atualizado para fornecer uma função que possibilite salvar registros. Vamos chamar nosso método de salvar( ). Este método fará três coisas: associar os dados do formulário com o objeto TableOla, checar se o registro foi formado corretamente e armazenar os dados do registro na base de dados.
Adicionar:
A primeira linha obtém uma referência ao objeto tabela. Se usarmos a convenção de nomes não é preciso indicar o nome do objeto tabela - a classe JModel sabe como encontrá-lo. Chamamos nossa classe de TableOla (o modelo sabe que se trata de uma tabela) e a colocamos num arquivo chamado ola.php (se a classe é TableOla o arquivo deve se chamar ola.php) no diretório tables (o diretório das classes de tabela).
A segunda linha obtém os dados do formulário. O JRequest possibilita obter todas as variáveis que foram submetidas através do método 'POST'. Elas chegam até nós na forma de um array associativo.
O restante do código é fácil: ligamos, checamos e armazenamos. O método bind( ) copia os valores do array para as propriedades correspondentes do objeto tabela. Neste caso, ele pega os valores de id, mensagem e published e os copia para o nosso objeto TableOla.
O método check( ) verifica os dados. Na classe JTable, este método apenas retorna true. No atual estágio, este método não está servindo para nada, mas é bom deixá-lo aí. Caso seja preciso fazer alguma verificação futuramente, este método torna possível fazer uma checagem de dados na nossa classe TableOla sobrepondo-o com um método personalizado.
O método store( ) pega os dados do objeto tabela e os armazena na base de dados. Se id for igual a 0 (zero), ele cria um novo registro (INSERT), caso contrário ele atualiza o registro indicado (UPDATE).