0
Gentlemen, I am creating a relationship between 3 tables, the product that takes category values and sessions, but this always returning me the following error:
Trying to get Property of non-object (View: /var/www/html/autopecas/Resources/views/admin/products/listar.blade.php)
My Model
Products
...
use Illuminate\Database\Eloquent\Model;
use App\Models\Categorias;
use App\Models\Sessoes;
class Produtos extends Model
{
protected $table = "produtos" ;
protected $fillable = [
'categoria_id','sessao_id','nome','descricao', 'codigo', 'codigo_loja', 'imagem', 'preco', 'status'
];
public function categoria()
{
return $this->belongsTo('App\Models\Categorias', 'categoria_id', 'id');
}
public function sessao()
{
return $this->belongsTo(Sessoes::class, 'sessao_id');
}
}
Sessoes
...
use Illuminate\Database\Eloquent\Model;
use App\Models\Categorias;
class Sessoes extends Model
{
protected $table = "sessoes" ;
protected $fillable = [
'categoria_id','nome'
];
public function cate()
{
return $this->belongsTo(Categorias::class, 'categoria_id');
}
Categories
use Illuminate\Database\Eloquent\Model;
use App\Models\Sessoes;
class Categorias extends Model
{
protected $table = "categorias" ;
protected $fillable = [
'nome','status'
];
public function cate()
{
return $this->hasMany(Categorias::class);
}
}
Productoscontroller
...
use App\Models\Categorias;
use App\Models\Sessoes;
use App\Models\Produtos;
...
public function listarSessoes()
{
$produtos = Produtos::select()->with('categoria')->with('sessao')->get();
return view('admin.produtos.listar', compact('produtos'));
}
listar.blade.php
@foreach($produtos as $produto)
<tr>
<td>{{$produto->id}}</td>
<td>{{$produto->nome}}</td>
<td>{{$produto->categoria->nome[1]}}</td>
<td> @if($produto->status == 'ativo')
<span class="label label-success">{{$produto->status}}</span>
@else
<span class="label label-danger">{{$produto->status}}</span>
@endif
</td>
<td>{{$produto->created_at }}</td>
<td>
<a href="{{route('admin.produtos.editar', $produto->id)}}" title="Editar"><i class="fa fa-pencil-square" aria-hidden="true"></i></a>
|
<a href="{{route('admin.produtos.excluir', $produto->id)}}" class="item" title="Excluir"><i class="fa fa-trash" aria-hidden="true"></i></a>
</td>
</tr>
@endforeach
Where am I going wrong?
Thanks in advance!
To avoid leaving long discussions in the comments; your conversation was moved to the chat, if you want to proceed just click on the link
– Bacco