List the Result of a Query

Asked

Viewed 43 times

0

I want to return in my code a list of users through a query data, 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 query result:

<?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 found that the error is on this line:

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

But I couldn’t solve it. Could give me a light ?

1 answer

0


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

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

Browser other questions tagged

You are not signed in. Login or sign up in order to post.