Получите название бренда вместо ID - Laravel 5.8 - PullRequest
0 голосов
/ 16 июня 2020

Хороший кто-то может мне помочь, у меня это плохо получается. У меня есть таблица с именем продукты, в ней поле с именем 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 бренда, поэтому здесь написано «безобъектное имя». Если я деактивирую два продукта, это не вызывает у меня ошибки, но в каждом продукте отображается другая марка, а их четыре.

...