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

Pegar Dados do BD

Estou com um problema,

eu não estou conseguindo pegar os dados do BD.

segue a parte que faço o select no banco.

Tentei usar o Usuario::find(), mas ele busca pelo id, eu preciso que busque pelo email.

$email = session()->get('email');


        $usuario = Usuario::query('email', '=', $email);

        return view('inicio')->with('u', $usuario);

o Model, Usuario.php

public $timestamps = false;

    protected $table = 'tb_users';

    protected $fillable = array('nome_usuario', 'email', 'senha_usuario');

e o Erro.

Undefined property: Illuminate\Database\Eloquent\Builder::$nome_usuario (View: /home/dionisio/Projetos/PHP/harembr/resources/views/inicio.blade.php)

e o arquivo inicio.blade.php

@extends('app')

@section('content')
<div class="container">
    <div class="row">
        <div class="col-md-10 col-md-offset-1">
            <div class="panel panel-default">
                <div class="panel-heading"><?= $u->nome_usuario ?></div>

                <div class="panel-body">
                    You are logged in!
                </div>
            </div>
        </div>
    </div>
</div>
@endsection

Valeu.!

7 respostas

Será que assim funciona:

$usuario = Usuario::where('email', '=', $email);

Não, continua com o mesmo erro.. =/

Undefined property: Illuminate\Database\Eloquent\Builder::$nome_usuario (View: /home/dionisio/Projetos/PHP/harembr/resources/views/inicio.blade.php)

Mas é que esse erro não tem a ver com a query.... ele ta dizendo que não existe um jeito de acessar essa propriedade.

Sim Alberto Souza, percebi isso mesmo depois que você falou, e eu não estou encontrando o erro pois passo essa variável pelo controller.

$email = session()->get('email');


        $usuario = Usuario::query('email', '=', $email);

        return view('inicio')->with('u', $usuario);

não sei o que estou fazendo de errado.!

detalhe, eu testei assim, e deu certo!

$usuario = DB::select('select * from tb_users where email = ?', [$email]);

mas queria usar o Eloquent. por padrão mas não estou conseguindo.

solução!

Tenta isso:

$usuario = Usuario::where('email', $email)->first();

Não sou expert em Laravel, mas acredito que no momento, $usuario seja uma Collection do Elloquent, e não uma instância de usuário.

Testa e diz pra gente se foi.

Eiii Carlos Vinicius, DEU CERTO MEU AMIGO, muito obrigado .... eu fiz desse jeito mas em vez de 'where' coloquei 'query' e não deu certo.

do jeito que me falou deu certinho que queria..

Valeu mesmo, abraço.