List the result of a query

0

I want to return in my code a list of users through a data query, I have the following model:

<?php
class Usuario{

    public function listar($condicoes = array()){
        $db = DB::criar('padrao');
        $sql = "select * from func";

        $where = array();
        foreach($condicoes as $campo => $valor){
            $where = "{$campo} = {$valor}";
        }    

        if ($where != array()){
            $where = " where " . implode(' and ', $where);
        }else{
            $where = '';
        }
        //Monta a query
        $sql .= $where;
        //Executa e retorna a lista
        $resultado = $db->query($sql);
        $lista = $resultado->fetch_all(MYSQLI_ASSOC);
        $resultado->free();
        return $lista;
    }

    //Método para encontrar um usuário pelo seu id
    public function encontrar($id){
        $condicao = array('id' => $id);
        $item = self::listar($condicao);
        return $item[0];
    }

}
?>

And the control that renders the view and passes the result of the query:

<?php

class HomeControle extends Controle{

    public function form(){
        die('Método form executado');
    }

    public function listar(){
        $this->modelo('Usuario');
        $lista = array();
        //Vincula a variável lista na visão
        $this->visao->bind('lista', $lista);
        //Lista os usuários cadastrados
        $lista = $this->Usuario->listar();
        //Renderiza a lista no navegador
        $this->visao->render('Usuario/lista');
    }

    public function index(){
        //Criando uma variável titulo
        $this->visao->set('titulo','Meu primeiro MVC');
        //Renderiza os dados 
        $this->visao->render('home/index');
    }
}

?>

I noticed that the error is in this line:

$lista = $this->Usuario->listar();

But I could not solve it. Could you give me a light?

    
asked by anonymous 14.09.2017 / 21:38

1 answer

0

This is probably happening because your code does not know what $ this-> user is.

At line $this->modelo('Usuario'); you could put $this->Usuario = $this->modelo('Usuario');

    
14.09.2017 / 22:19