Po, bem observado.
A camada de modelo não deve nem lembrar que POST existe. Isso é
responsabilidade da classe de controle.
Na minha opinião, o seu Controller deveria receber as variáveis do
post e passar pra um objeto (VO, como já disseram) ou um array.
Depois eu chamaria o método inserir() do meu modelo.
Como eu ainda acho que validação de negócio (logo, de campos do
formulário), deve ser feita dentro do seu Modelo. Estou enferrujado e
não sei o comportamento da classe Validation dentro do modelo, mas eu
usaria ela lá.
Sendo assim, o método inserir() chamaria o método
validarAntesInserir() passando mais uma vez o objeto ou array. Se
passar pela validação, segue a inserção, se não, retorna erro pro
controle que exibe na tela.
Em 24/01/08, Rafael V. de Oliveira<[EMAIL PROTECTED]> escreveu:
>
> Só uma dúvida.
>
> Caso vc utilize o Model Livro para outra coisa que não seja o insert
> (listar, por exemplo). Provavelmente vc não vai ter a variável de post
> ainda, pois num view que só tem listar (select), a chance de ter algum post
> é baixa.
>
> E aí meu amigo? No construtor do model vc alocou memória para 3 variaveis
> que nunca vai usar. Não entendi o motivo.
> Não seria mais fácil vc utilizar o input->post no método que vc chamou, ao
> inves de chamar no construtor?
>
> Paulo Balzi escreveu:
> Galera, voltando o assunto, mas agora vamos pra prática no CI.
>
> Vou explicar o exemplo e do jeito q eu achei q tinha q ser implementado.
>
> Tabela: Livro
>
>
> id
> titulo
> assunto Criando o Model para a tabela Livro
>
> class Livro extends Model {
> public $id, $titulo, $assunto;
> function __construct() {
> parent::model();
> $this->id = $this->input->post(id);
> $this->titulo = $this->input->post(titulo);
> $this->assunto = $this->input->post(assunto);
> }
> public function insert() {
> $this->db->insert('livro', $this);
> }
> } //fim Model
>
> Criando o Controller, considerando q eu uso o método index para fazer a
> inserção
>
> class ControleLivro extends Controller {
> function __construct() {
> parent::construct();
> }
> function index() {
> ...
> if ($this->validation->run() = FALSE) {
> $this->load->view("pagina");
> } else {
> $this->load->model(Usuario);
> $this->Usuario->insert();
> }
> }
> }
>
> bom, ele executa corretamente, o problema é que, quando eu passo o this
> como parametro para fazer a inserção, ele traz outros atributos de outras
> classes, causando um erro no comando.
>
> Eu entendi a teoria q o pessoal tentou passar nessa discussão, mas na
> prática eu não, consegui sair da origem, a estrutura do CI me trouxe dúvidas
> em relação a criação de objetos.
> Bom é isso, fico no aguardo.
> Valeu mais uma vez aí.
>
>
> Paulo Balzi ________________________________
>
> _______________________________________________
> Lista mailing list
> [email protected]
> http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
>
>
> --
> Rafael Vieira de Oliveira
> Faculdade de Direito de SBC - Autarquia Municipal
> Setor de Automação, Telefonia e Informação
> (11)4123-0222 Ramal: 208
>
> _______________________________________________
> Lista mailing list
> [email protected]
> http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
>
>
--
Newton Wagner
skype: newtonwagner
msn/gtalk: [EMAIL PROTECTED]
http://www.newtonwagner.net/blog
- http://www.owshit.com.br/
_______________________________________________
Lista mailing list
[email protected]
http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br