Ir para conteúdo
Fórum Script Brasil
  • 0

Como usar a pasta Modelos no MVC?


Frank K Hosaka

Pergunta

Eu criei um arquivo para cada tabela dentro da pasta Modelos, mas isso acabou virando uma enorme linguiça. Faz sentido você ter um Controle para cada tabela, mas no caso do Modelo, achei melhor abandonar a ideia de criar um arquivo para cada tabela. Ao invés disso, eu criei um pseudo Query Builder dentro do arquivo Modelos/Conexao.php, assim:

 

<?php
class Conexao {
    private static $pdo;

    public function __construct(){}

    public static function instancia(){
        $dbname="diario";
        $user="root";
        $password="";
        if(!self::$pdo){
            self::$pdo=new PDO("mysql:host=localhost;dbname=$dbname",$user,$password);}
        return self::$pdo;}
    
    public function select($sql){
        $stmt=$this->instancia()->query("select $sql");
        return $stmt->fetchAll(PDO::FETCH_OBJ);}}

Eu não lembro de onde copiei esse código, só sei que não posso usar a variável $this->pdo, no lugar dele, estou usando a função instancia( ). O que inventei foi a função select( ), e eu uso essa função no Controle assim:

arquivo MVC > Controles > ControleDiario.php (listagem parcial)


	public function inicio(){
        $dia=date('Y-m-d');
        if(isset($_SESSION['dia'])){$dia=$_SESSION['dia'];}
        $lctos=$this->Conexao->select("* from tbdiario where dia='$dia' order by lcto");
        $somaDebito=$this->Conexao->select("sum(valor) as soma from tbdiario 
            where dia='$dia' and contad is not null")[0]->soma;
        $somaCredito=$this->Conexao->select("sum(valor) as soma from tbdiario
            where dia='$dia' and contac is not null")[0]->soma;
        require VISAO . '/Diario.php'; exit;}

Note que eu não uso a palavra select na redação da consulta. Isso está bem longe do Eloquent do Laravel, mas já é um começo.

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...