Pessoal, Obrigado mesmo pela ajuda!

Agora consegui entender bem como isso funciona no CodeIgniter. Pelo visto
não conseguimos aplicar todos os conceitos da Orientação a objeto aqui né?

Valeu pela recomendação... vou continuar minha leitura na documentação do
CodeIgniter.

Abraços.

2009/5/6 Rafael V. de Oliveira <[email protected]>

>  Daniel,
>
>
>
> O que pretendes fazer não dá. Não é assim que o CI trabalha. Sugiro que não
> coloque parâmetros no construtor do modelo. O exemplo dado no post pode ser
> desta forma:
>
>
>
> No controller
>
> $this->load->model('usuario');
>
> $this->usuário->set_valor('nome', $nome);
>
> $this->usuario->imprimeDados();
>
>
>
> E no model
>
> class Usuario extends *Model*
>
> {
>
>
>
>     var $nome;
>
>
>
>     function usuario()
>
>     {
>
>         parent::Model();
>
>     }
>
>
>
>     function set_valor($campo, $valor)
>
>     {
>
>         $this->$campo = $valor;
>
>     }
>
>
>
>     function imprimeDados()
>
>     {
>
>         printf('Nome: %s<br />', $this->nome);
>
>     }
>
>
>
> }
>
>
>
> Entendeu mais ou menos?
>
> Alias, recomendo que dê uma lida neste link:
> http://codeigniter.com/user_guide/libraries/loader.html
>
>
>
> *De:* [email protected] [mailto:
> [email protected]] *Em nome de *Daniel Nascimento
> *Enviada em:* terça-feira, 5 de maio de 2009 21:20
> *Para:* CodeIgniter Brasil
> *Assunto:* Re: [CodeIgniter] Dúvida com $this->load->model no controller
>
>
>
> Roberto, obrigado pela resposta.
>
> Na verdade ajudou e complicou um pouco ao mesmo tempo... hehehe.
>
> Não entendi o que você quis dizer quando escreveu isso:
> $user = new Usuario($nome,$email,$sexo,$login,$senha); // na documentação
> do CI ele ensina como fazer, se tu quer inserir um usuário depois de
> carregar o usuariomodel tu poderia fazer o seguinte:
> $this->usuariomodel->nome = $nome;
> $this->usuariomodel->email = $email;
> $this->usuariomodel->sexo = $sexo;
> $this->usuariomodel->login = $login;
> $this->usuariomodel->senha= $senha;
> imprimeDados($this->usuariomodel);
>
> No meu caso eu tenho uma classe Usuário e quero chamar seu construtor para
> instanciar um objeto, pelo que eu entendi no que você escreveu eu não
> conseguirei chamá-lo e sim devo setar os parâmetros um a um.
>
> Não existe uma forma de eu executar o construtor da classe Usuario passando
> os parâmetros para ele?
>
> Ahh!! O imprimeDados é só um método de teste que eu criei que iria imprimir
> todos os dados do objeto da classe usuário.
>
> Abraços.
>
> 2009/5/5 Roberto Almeida Longhi <[email protected]>
>
> Daniel,
>
> Tudo bom ?
> Verifiquei o código, e segue alguns comentarios.
>
> Daniel Nascimento escreveu:
>
> Boa Tarde a todos.
>
> Sou novo aqui na lista e estou começando agora a mexer com o Code Igniter.
> Estou fazendo uma aplicação para estudo aqui e surgiu uma dúvida.
>
> Fiz o seguinte controller:
>
> class Usuario extends Controller {
>
>    public function Usuario(){
>        parent::Controller();
>    }
>
>    public function novo(){
>        $nome = 'Daniel Nascimento';
>
>        $email = '[email protected] <mailto:[email protected]>';
>
>
>        $sexo = 'M';
>        $login = 'dnascimento';
>        $senha = 'teste123';
>
>        /* Carregando o Model de Usuarios */
>
>
>
>        $this->load->model('usuario/usuario'); *// isso quer dizer que tu
> tem uma pasta usuario dentro da pasta model e dentro da pasta usuario tu tem
> o arquivo usuario.php. O CI recomenda algo parecido com a linha abaixo.*
>
> *        $this->load->model('usuariomodel');*
>
> *E dentro deste model tu aciona o metodo que precisa. e acessa as
> propriedades.
> *
>
>        $user = new Usuario($nome,$email,$sexo,$login,$senha); *// na
> documentação do CI ele ensina como fazer, se tu quer inserir um usuário
> deveria fazer o seguinte*
>
> *Depois de carregar o usuariomodel tu poderia fazer o seguinte:
> $this->usuariomodel->nome = $nome;
> **$this->usuariomodel->email = $*email*;
> **$this->usuariomodel->sexo = $*sexo*;
> **$this->usuariomodel->login = $*login*;
> **$this->usuariomodel->senha= $*senha*;
> **imprimeDados(**$this->usuariomodel**);
>
> Alias, o que tu quer dizer com imprime dados ?
> Se for exibir somente, pode chamar uma view ... que é o aconselhavel ...
>
> Ajudei ou piorei sua situação ?
> =]
>
> []'s
> *
>
>        $user->imprimeDados();
>    }
> }
>
> Tenho um model de usuarios dentro da pasta model/usuario/usuario.php. Fiz o
> load do model através do comando /$this->load->model('usuario/usuario');/
> A minha dúvida é: Como faço para instanciar um objeto da classe Usuario
> através do controller, tentei fazê-lo da seguinte forma porém não consegui.
>        $user = new Usuario($nome,$email,$sexo,$login,$senha);
>        $user->imprimeDados();
>
> Alguma sugestão?
>
> Abraços.
>
> --
> *Daniel Barbosa do Nascimento Filho*
> /SQA - Analista de Qualidade
> VirtualRox - Soluções Digitais
>
> http://www.virtualrox.com/
> ------------------------------------------------------------------------
>
> _______________________________________________
> Lista mailing list
> [email protected]
> http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
>
>
>
> --
> Roberto Almeida Longhi
> Programador
> Contmatic
> (11) 2942 6700 Ramal 1404
> (11) 8599 9022
> www.contmatic.com.br
>
>
> _______________________________________________
> Lista mailing list
> [email protected]
> http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
>
>
>
>
> --
> *Daniel Barbosa do Nascimento Filho*
> *SQA - Analista de Qualidade
> VirtualRox - Soluções Digitais
> http://www.virtualrox.com*
>
> _______________________________________________
> Lista mailing list
> [email protected]
> http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
>
>


-- 
*Daniel Barbosa do Nascimento Filho*
*SQA - Analista de Qualidade
VirtualRox - Soluções Digitais
http://www.virtualrox.com*
_______________________________________________
Lista mailing list
[email protected]
http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br

Responder a