Desde que surgiu essa discussão da outra vez, e após ler todos os links 
que enviaram, eu passei a manter o controller só para controle mesmo. 
Andei fuçando no Zend e lendo alguns tutoriais a orientação é essa 
também, que já foi dada aqui.
Então passei a usar o validation dentro do model. O controller só aciona 
ele e recebe o resultado para então seguir em frente.
Funciona perfeito, sem problema e ficou muito mais claro para mim.

Abs

Muita sorte para nós!

Marco Telles

#############
# Pier de Ipanema ( http://www.pierdeipanema.com.br/ )



Luciano Soares escreveu:
>  Newton vc defende a validação dentro do modelo, então o modelo com o 
> Validation estaria acessando os dados via POST pois é isso que o 
> validation faz.
>
>  Eu, assim que tiver tempo, vou tentar colocar o Validation dentro dos 
> meus models pra ver como fica.
>
> Em 24/01/08, *Newton Wagner* <[EMAIL PROTECTED] 
> <mailto:[EMAIL PROTECTED]>> escreveu:
>
>     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]
>     <mailto:[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] <mailto:[email protected]>
>     >
>     http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
>     <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] <mailto:[email protected]>
>     >
>     http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
>     <http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br>
>     >
>     >
>
>
>     --
>     Newton Wagner
>
>     skype: newtonwagner
>     msn/gtalk: [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>
>
>     http://www.newtonwagner.net/blog <http://www.newtonwagner.net/blog>
>     - http://www.owshit.com.br/
>
>     _______________________________________________
>     Lista mailing list
>     [email protected] <mailto:[email protected]>
>     http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Lista mailing list
> [email protected]
> http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
>   

_______________________________________________
Lista mailing list
[email protected]
http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br

Responder a