Хороший кто-то может мне помочь, у меня это плохо получается. У меня есть таблица с именем продукты, в ней поле с именем brand_id
, затем у меня есть таблица с именем бренды, в которой я перечисляю ее по полю ID
, эта таблица также содержит столбец с именем nombre.
Модель producto
class Producto extends Model
{
protected $table = 'productos';
public function marcas()
{
return $this->belongsTo(Marca::class , 'id');
}
}
Модель Marca
класс Marca расширяется Модель
{
protected $table = 'marcas';
public function producto()
{
return $this->hasMany(Producto::class , 'id_brand');
}
}
Контроллер
publi c $ category, $ productos, $ ofertados;
public function __construct()
{
$this->productos = Producto::with('marcas')
->latest('id')
->limit(6)
->whereEstado(1)
->get();
}
Просмотр
@foreach ($productos as $pro)
<div class="col-4 catProduct">
<div class="col-12 bordeCajon">
@if ($pro->novedad == 1)
<div class="nEntrada">NOVEDAD</div>
@endif
@if ($pro->pvpAntes == null)
@else
<div class="oferta">OFERTA!</div>
@endif
<div class="minHei">
<img src="{{ asset("{$pro->imagen}") }}" alt="">
</div>
<div class="paddingProducto">
@php
/** echo "<pre>"; print_r($pro->marcas);*/
@endphp
<h2> {{ $pro->marcas->mombre }} </h2>
<h3>{{ $pro->producto }}</h3>
<div class="dividerProd"></div>
<h4>{{ $pro->pvpAhora }} <span>€</span></h4>
@if ($pro->pvpAntes == null)
@else
<div class="pvpAntes">{{ $pro->pvpAntes }} <span>€</span></div>
@endif
<a href="{{ route('web.detalle', ['cat' => $pro->categoria, 'sub' => $pro->subcategoria, 'url' => $pro->url]) }}" class="btn btn-primary btnForm pull-right">VER PRODUCTO</a>
</div>
</div>
</div>
@endforeach
Ошибка
Trying to get property 'nombre' of non-object (View: /Applications/MAMP/htdocs/camasLiteras/resources/views/index.blade.php
Например, в таблице оценок у меня 4 оценки. Вначале у меня было 6 продуктов с брендом. Что ж, он делает то, что мы сделали: берем продукт и помещаем название бренда в том же порядке в таблице брендов, то есть он не помещает название, которого он касается. А поскольку существует 6 продуктов, но только 4 бренда, поэтому здесь написано «безобъектное имя». Если я деактивирую два продукта, это не вызывает у меня ошибки, но в каждом продукте отображается другая марка, а их четыре.