Hallo ich arbeite an einem Laravel-Training-Projekt. Ich habe ein Problem mit Modellen und Beziehungen, wenn ich versuche, den Namen der einzelnen Produktkategorien zu erhalten. Hier
ist mein Produkt-ModellKategorie Beziehung in Laravel Undefinierte Eigenschaft: stdClass ::
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Product extends Model
{
public function category()
{
return $this->belongsTo('App\Category');
}
}
und meine Kategorie Modell
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Category extends Model
{
protected $table = 'categories';
public function products()
{
return $this->hasMany('App\Product');
}
}
wenn ich versuche, die Kategorienamen für jedes Produkt zu erhalten, wie dies
@foreach($products as $product)
<tr>
<td>{{ $product->id }}</td>
<td>{{ $product->name }}</td>
<td>{{ $product->category->name }}</td>
</tr>
@endforeach
, während ich die laufe Seite Ich erhalte diesen Fehler
Undefined property: stdClass::$category (View: /var/www/html/projectname/resources/views/my/products/index.blade.php)
Kann mir jemand sagen, was diesen Fehler verursacht?
Update
hier ist die Tabellenstruktur
Produkte: id, name, category_id-> unsigned()
Kategorien: ID, Name
und hier ist der Code i $ Produkte zu erhalten verwenden, um
$user_id = Auth::user()->id;
$products = DB::table('products')->where('user_id', $user_id)->paginate(5);
return view('my.products.index')->withProducts($products);
Zeigen Sie Ihre Tabellenstrukturen für Produkt und Kategorie, vielleicht Problem in falschen Fremdschlüsseln –
@OdinThunder Ich aktualisierte den Beitrag siehe die Tabellenstrukturen. und erhalten Sie zurück zu mir –
Ihre Fehlermeldung schlägt vor, dass "$ product" ist ein Objekt/stdClass, anstatt eine Instanz Ihres "Produkt" -Modell. Können Sie den Code posten, den Sie verwendet haben, um die Variable '$ products' zu erhalten? – Jonathon