4
respostas

erro no laravel

ErrorException in f9341eb1bec1c26dbfbc2bc841ad9928 line 11: Trying to get property of non-object (View: C:\Users\DANIEL\Desktop\estoque\resources\views\listagem.blade.php)

<?php namespace App;

use Illuminate\Database\Eloquent\Model;

class Categoria extends Model {


    public function produtos(){
        return $this->hasMany('App\Produto');
    }
}
php namespace App;

use Illuminate\Database\Eloquent\Model;

class Produto extends Model {

    protected $table = 'produtos'; //nome da tabela
    public $timestamps = false;

    protected $fillable = array('nome', 'descricao', 'quantidade', 'valor', 'tamanho', 'categoria_id');

    public function categoria(){
        return $this->belongsTo('App\Categoria');
    }

}
@extends('principal')

@section('conteudo')
<h1>Listagem de produtos</h1>

<table class="table">
    @foreach ($produtos as $p)
    <tr>
        <td> {{ $p->nome }}</td>
        <td> {{ $p->valor }}</td>
        <td> {{ $p->descricao }}</td>
        <td> {{ $p->tamanho }}</td>
        <td> {{ $p->categoria->nome }}</td>
        <td><a href="produtos/mostra/{{$p->id}}"><span class="glyphicon glyphicon-search" aria-hidden="true"></span></a></td>

        <td><a href="produtos/remove/{{$p->id}}"><span class="glyphicon glyphicon-trash" aria-hidden="true"></span></a></td>
    </tr>
    @endforeach
</table>

    @if(old('nome'))
        <div class="alert alert-success">Produto {{old('nome')}} adicionado com sucesso!</div>
    @endif

@stop
4 respostas

Daniel, se você comentar a linha que exibe a categoria, a listagem funciona?

Talvez ele não atribuiu um id para os produtos cadastrados, após setar um valor para o categoria_id deve funcionar

Verdade Vinicius, esqueci desse detalhe! Daniel, dá um feedback aqui pra gente?

Recebi a mesma mensagem nesse ponto da aula, e sugestão de Vinicius funcionou, de fato basta realizar um update (update produtos set categoria_id = 1 where categoria_id =0), obrigado!