GUJ Discussões   :   últimos tópicos   |   categorias   |   GUJ Respostas

Erro Listar Cidades do banco de dados com CodeIgniter PHP MySQL

Tags: #<Tag:0x00007f2ba7937e00>

Estou tentando listar cidades que estão na tabela cities do meu BD e ocorre o erro abaixo:

A PHP Error was encountered
Severity: Notice

Message: Undefined variable: Buscar

Filename: pages/busca.php

Line Number: 31

Backtrace:

File: D:\BF\meusite\application\views\frontend\pages\busca.php
Line: 31
Function: _error_handler

File: D:\BF\meusite\application\libraries\Template.php
Line: 29
Function: view

File: D:\BF\meusite\application\controllers\Pages.php
Line: 37
Function: load

File: D:\BF\meusite\index.php
Line: 322
Function: require_once

A PHP Error was encountered
Severity: Warning

Message: Invalid argument supplied for foreach()

Filename: pages/busca.php

Line Number: 31

Backtrace:

File: D:\BF\meusite\application\views\frontend\pages\busca.php
Line: 31
Function: _error_handler

File: D:\BF\meusite\application\libraries\Template.php
Line: 29
Function: view

File: D:\BF\meusite\application\controllers\Pages.php
Line: 37
Function: load

File: D:\BF\meusite\index.php
Line: 322
Function: require_once

Controller

    <?php
defined('BASEPATH') OR exit('No direct script access allowed');


class Buscar extends CI_Controller {

    public $data = array();

    public function __construct(){
        parent::__construct();

        $this->load->model('menus_model');

        $this->data['menus'] = $this->menus_model->getMenus();
        $this->data['menu_ativo'] = '';

        $this->data['header'] = $this->load->view('frontend/includes/header.php', $this->data, true);
        $this->data['navigation'] = $this->load->view('frontend/includes/navigation.php', $this->data, true);
        $this->data['footer'] = $this->load->view('frontend/includes/footer.php', $this->data, true);
    }

    public function index() {

        $this->load->model("Buscar_model");
        $lista = $this->Buscar_model-> buscaTodos();
        $dados = array('Buscar' => $lista);
        $this->load->view('frontend/pages/busca.php', $dados);
    }
}

Model

    <?php

class Buscar_model extends CI_Model{

    public function buscaTodos(){
                $this->load->database(); //carrego a library de banco de dados

        return $this->db->get('cities')->result_array(); //retorna os nossos dados
    } 
}

View

 <section class="section">
        <div class="categories-body">
            <div class="container">

            <table class="table">
                    <tr>
                        <th>Nome</th>
                        <th>Descrição</th>
                    </tr>
            <?php foreach ($Buscar as $busca) : ?>
                <tr>
                    <td><?= $busca['city_name'] ?> </td>
                    <td><?= $busca['state_uf'] ?> </td>
                </tr>
             <?php endforeach ?>
            </table>

O que tem na linha 31 do arquivo busca.php?

Eu sempre vou um var_dump(OBJETO OU ARRAY) e depois return antes da linha de load da view pra ver se é um objeto ou array e descobrir se estou passando de forma correta a estrutura de dados para o foreach na view ou onde for usada. Ás vezes, converto com (array) antes do $this->load->model(‘model’)->metodoRetornadorDeAlgo().

//