Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Uma dúvida... tenho em um model uma função que me retorna os dados da pessoa. É possível eu chamar essa função em um controller e usar o retorno dos dados??
Algo do tipo:
Controller {
//alguma coisa
$data = $this->model->func()
//Usar os dados dessa func do model
}
Valeu!
romabeckman, mais ou menos assim...
Tenho minha função no model:
//Model
public function usuario() {
$query = $this->db->get_where('usuario', $this->session->userdata('id');
return $query->result();
}
E tenho um controller onde eu gostaria de chamar esse model, e pegar por exemplo... o campo email retornado da função 'usuario'
//Controller
public function retorno() {
//alguma coisa
$dados = $this->model->usuario();
//Aqui eu colocario o campo email da função do model, para por exemplo, colocar como parametro nas configurações da classe 'email''
//Toda configuração da classe 'email'
$this->email->to($dados->email]); //Claro, está errado do jeito que eu fiz $dados->email não funcionaou
}
Mais ou menos isso...
// MODEL
class usuario_model extends CI_Model {
public function usuario($idUsuario) {
return $this->db
->get_where('usuario', array('id' => $idUsuario)) // Consulta na tabela usuario
->row(0);// Retorna primeira linha da consulta
}
}
//Controller
public function retorno() {
$this->load->model('usuario_model'); // Carrega o Model
$usuario = $this->usuario_model->usuario($this->session->userdata('id'));
// Faz alguma coisa...
}
Olha na documentação do Codeigniter:
https://ellislab.com/codeigniter/user-guide/database/results.html
romabeckman fiz assim e deu certo:
//Model Read - que traz os dados do usuário como parametro a session
public function dados(){
$dados = $this->load->database('global', TRUE);
$dados->where('numero', $this->session->userdata('numero'));
$query = $dados->get('usuarios');
$data = array(
'email' => $query->row()->email,
'name' => $query->row()->name
);
return $data;
}
//Em algum controller
public function email() {
//Algum processo
//E aqui... quando eu quiser usar alguma informação do usuaário
$data = $this->read->dados(); //Chamo a função do model
//Configuração do e-mail
$this->email->to($data['email']); //Aqui uso o dado email do usuário
}
Valeu romabeckman
Pra chamar a função do model no controllers, primeiro vc deve adicionar o model no seu Controller com:
$this->load->model('alguma_coisa_model');
depois vc pode realizar a chamada da função, como:
$pessoa = $this->alguma_coisa_model->minhaFuncao();
No model vc tem:
class alguma_coisa_model extends CI_Model {