CodeIgniter Forums
Erro listar dados - Printable Version

+- CodeIgniter Forums (https://forum.codeigniter.com)
+-- Forum: General (https://forum.codeigniter.com/forum-1.html)
+--- Forum: Regional User Groups (https://forum.codeigniter.com/forum-25.html)
+--- Thread: Erro listar dados (/thread-68270.html)



Erro listar dados - [email protected] - 06-17-2017

Pessoal, sou novo com o CI, estou tentando listar dados do banco de dados, mas estou recebendo o erro: 

A PHP Error was encountered
Severity: Notice
Message: Undefined variable: ramais
Filename: ramais/view_ramais.php
Line Number: 46

Segue abaixo o codigo:

Model

public function mListarRamais(){

   $this->db->select('id, name, callerid, context, qualify');
   $data['ramais'] = $this->db->get('ramais')->result();
   return $data['ramais'];
}


---------------------

Controller 

public function index()
{
   $this->load->view('includes/header');
   $this->load->view('includes/menu');
   $this->load->view('ramais/view_ramais');
   $this->load->view('includes/footer');

   $this->load->model('M_ramais');
   $data['ramais'] = $this->M_ramais->mListarRamais();
   $this->load->view('ramais/view_ramais', $data);

}

---------------------

View

<table width="100%" class="table table-striped table-bordered table-hover" id="dataTables-example">
   <thead>
   <tr>
       <th>ID</th
       <th>Ramal</th>
       <th>Nome</th>
       <th>Permissão</th>

   </tr>
   </thead>
   <?php foreach ($ramais as $ramal){?>
   <tr>
       <td><?= $ramal->id; ?></td>
       <td><?= $ramal->name; ?></td>
       <td><?= $ramal->callerid; ?></td>
       <td><?= $ramal->context; ?></td>
   </tr>
   <?php }?>
       
   <tbody>

   </tbody>
</table>




Alguem pode me dizer oq eu estou fazendo de errado, ele chegar a listar os dados, mas no topo da tela exibe essa mensagem...


RE: Erro listar dados - RECOHA - 06-19-2017

No model, você está atribuindo um objeto, que é o retorno da função result() em um vetor e no controller você armazena esse vetor em um outro vetor para enviar a view, a solução é utilizar apenas uma variável no model (exemplo abaixo) ou no foreach da view você deve utilizar o vetor.

Solução 1:
PHP Code:
public function mListarRamais()
{
   
$this->db->select('id, name, callerid, context, qualify');
   
$ramais $this->db->get('ramais')->result();
   return 
$ramais;


Experimente utilizar um print_r($data['ramais']) no controller pra você entender como estão organizadas as informações.


RE: Erro listar dados - davicotico - 06-20-2017

Olá,

você está chamando a view 'view_ramais' duas vezes:

PHP Code:
public function index()
{
   
$this->load->view('includes/header');
   
$this->load->view('includes/menu');
   
$this->load->view('ramais/view_ramais'); /* ESTA LINHA NÃO TEM DADOS. Esse é o problema */
   
$this->load->view('includes/footer');

   
$this->load->model('M_ramais');
   
$data['ramais'] = $this->M_ramais->mListarRamais();
   
$this->load->view('ramais/view_ramais'$data);