Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Return View em branco

Amigos, boa tarde !

Tenho uma condição ternária pra retornar uma view de administrador ou de usuário no meu sistema, dentro do código de login na model...

Porém o return view não retorna nada, a tela está ficando em branco

Segue o código :

class Logar extends Model
{

    function fazerLogin() { 


    $email = $_GET['email'];

    $senha = md5($_GET['senha']);    

    $consultaLogin = DB::table('usuarios')->where('email',$email)->where('senha',$senha)->first(); 


     if($consultaLogin) { //Se login OK

             session_start() ; //Inicia Sessão
            $_SESSION['login'] = $email ; 
            $_SESSION['senha'] = $senha ;

            //Até aqui tudo funciona...porém quando chega no return, devolve tela em branco    

       return ($email == "admin@admin.com")? view("logadoAdmin") : view ("logadoUser"); 

                       }
         }
   }

Alguém sabe me informar o motivo do return view dentro da model devolver página em branco ?

4 respostas

Cara, qual o motivo de você estar fazendo isto no Model?

Isso não é trabalho do Model e sim do Controller.

Estou tentando entender o mvc...não seria papel da model verificar o banco ?

solução!

OBS-01: Não sei como está o seu conhecimento em PHP / Laravel, então vou fazer resumo bem tosco.

OBS-02: Não se esqueça que você está usando um Framework, então não precisa reinventar a roda. O Laravel já possui um scaffold de login. Caso queira criar um, recomendo olhar a documentação.

Eu até entendo o seu ponto de vista, mas eu te pergunto... Você está realmente usando Laravel?

  • Porque você está usando $_GET['email'];?
  • Porque você está usando md5($_GET['senha'])? // use bcrypt

Por padrão o Laravel disponibiliza um Request através do Service Container.

Exemplo - 1

public function store(Request $request)
{
    $name = $request->input('name');
    //
}

Exemplo - 2

public function store()
{
    $dados = request(['name', 'email']);
    //
}

Perceba que class Logar extends Model sua classe Logar herda de Model, logo sua classe tem métodos como:

$clients = Client::all(); // busca todos os clientes

Client::create(request(['name', email'])); // faz um insert

Se você quiser fazer um Login próprio, seria melhor criar uma classe que irá herdar de FormRequest.


Exemplo de Controller

public function show()
{
    $clients = Client::all();

    return view('client.index', compact('clients'));
}

Mathews, obrigado pelo toque..eu tirei esse return e joguei no controller, deixando somente a lógica na Model, aí funcionou certinho.

Eu sou iniciante com MVC, estou vendo isso apenas há alguns dias..então to usando alguns comandos que não são do Laravel, simplesmente porqui ainda conheço pouco do Framework...mas muito obrigado amigo :)