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

Responder a