Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa noite galera,
Estou com uma dificuldade para puxar mais de 1 model dentro do mesmo controller.
Eu tenho a class Profissionais, dentro da function INDEX eu quero puxar SOCIOS (que está dando certo, os dados estão indo para a view PROFISSIONAIS) e também quero carregar ADVOGADOS e ADMINISTRADOR. Só que não estou conseguindo.
Controller (teste1):
<?php
class Profissionais extends CI_Controller {
public function __construct()
{
parent::__construct();
}
public function index(){
$this->load->model('Socios_model');
$dados['socio'] = $this->Socios_model->get_socios();
$this->load->view('profissionais',$dados);
}
public function advogados(){
$this->load->model('Socios_model');
$dados['socio'] = $this->Socios_model->get_socios();
$this->load->view('profissionais',$dados);
}
}
/**
*
*/
class Advogados extends Profissionais
{
function __construct()
{
parent::__construct();
}
public function index(){
$this->load->model('Advogados_model');
$dados['advogados'] = $this->Advogados_model->get_advogados();
var_dump($dados['advogados']);
$this->load->view('profissionais',$dados);
}
}
Controller (teste2):
class Profissionais extends CI_Controller {
public function __construct()
{
parent::__construct();
}
public function index(){
$this->load->model('Socios_model');
$dados['socio'] = $this->Socios_model->get_socios();
$this->load->model('Advogados_model');
$adv['advogados'] = $this->Advogados_model->get_advogados();
$this->load->view('profissionais',$dados,$adv);
}
}
O erro diz que a variável não foi definida:
A PHP Error was encountered
Severity: Notice
Message: Undefined variable: advogados
Filename: views/profissionais.php
Line Number: 169
Backtrace:
File: C:\wamp\www\novo\application\views\profissionais.php
Line: 169
Function: _error_handler
File: C:\wamp\www\novo\application\controllers\Profissionais.php
Line: 19
Function: view
File: C:\wamp\www\novo\index.php
Line: 315
Function: require_once
A PHP Error was encountered
Severity: Warning
Message: Invalid argument supplied for foreach()
Filename: views/profissionais.php
Line Number: 169
Backtrace:
File: C:\wamp\www\novo\application\views\profissionais.php
Line: 169
Function: _error_handler
File: C:\wamp\www\novo\application\controllers\Profissionais.php
Line: 19
Function: view
File: C:\wamp\www\novo\index.php
Line: 315
Function: require_once
class Profissionais extends CI_Controller {
public function __construct()
{
parent::__construct();
}
public function index(){
$this->load->model(array('Socios_model', 'Advogados_model'));
$dados['socio'] = $this->Socios_model->get_socios();
$dados['advogados'] = $this->Advogados_model->get_advogados();
$this->load->view('profissionais',$dados);
}
}
Quando estiver na view profissionais acesse os dados com as respectivas variaveis: $socio, $advogados;
A função load_view aceita somente três parâmetros, o primeiro é o nome da view, o segundo os dados enviados para view e o terceiro é um booleano.
Logo, sua passagem de dados está incorreta, deve ser assim:
Ps.: Isso tudo está no manual (https://ellislab.com/codeigniter/user-guide/general/views.html);;)Ps. 2: A Ellis Labs não é mais mantenedor do Code Igniter (deves procurar o novo mantenedor, caso houver);
Ps. 3: CI não é um bom FrameWork, em trabalhos futuros, é aconselhável mudar para outro.