Mein Warenkorb-Modell hat:hasMany Beziehung nicht in Laravel Arbeits
public function product() {
return $this->hasMany('App\Product');
}
Mein Produkt-Modell hat:
public function cart() {
return $this->belongsTo('App\Cart');
}
Meine Datenbank wie folgt aussieht:
Wagen Tabelle:
Produkttabelle:
Mein Warenkorb Migration enthält:
$table->integer('product_id')->unsigned();
$table->foreign('product_id')->references('id')->on('products')->onDelete('cascade');
Mein Controller enthält:
public function index()
{
if(Auth::check())
{
$user = Auth::user();
$cart = Cart::where('user_id',$user->id)->get();
return view('products.cart')->withCart($cart);
}
else {
return view('products.cart');
}
}
Es prüft, ob Benutzer in dann protokolliert wird Holen Sie sich Details von allen Warenkorb, wo die Benutzer-ID mit dem aktuellen Benutzer übereinstimmt. Das funktioniert.
Aber wenn ich gehen Seite product.cart Ich versuche:
@foreach($cart->product as $p)
{{dd($p->name)}}
@endforeach
ich Fehler:
Undefined property: Illuminate\Database\Eloquent\Collection::$product (View: D:\wamp64\www\ecommerce\resources\views\products\cart.blade.php)
Können Sie mir sagen, wie von Produkten Tisch bekommen Wert mit diese Beziehung.
Vielen Dank!
Edit:
Nach verschiedenen Verfahren versucht, ich habe:
Wagen Modell:
public function product() {
return $this->hasMany('App\Product','id','product_id');
}
Warenkorb Controller:
public function index()
{
if(Auth::check())
{
$user = Auth::user();
$cart = Cart::where('user_id',$user->id)->first();
return view('products.cart')->withCart($cart);
}
else {
return view('products.cart');
}
}
Jetzt bin ich in der Lage zu bekommen das erste Produkt, das passt mit ID zusammen.
Gibt es eine Möglichkeit, alle Produkte zu erhalten, die Spiele
Das Speichern der Produkte in einer Warenkorb-Tabelle ist nicht wirklich ein guter Weg zu gehen. Ich würde den Inhalt des Einkaufswagens in der Sitzung speichern. –
Die Umkehrung von 'hasMany' ist' goesTo'. Sie müssen das verwenden. Verweisen Sie auf [Dokumente] (https://laravel.com/docs/5.3/eloquent-relationships). Meine Vermutung ist, es sollte sein _Produkt gehört zu einem Wagen_. – linuxartisan
@linuxartisan nach dem Wechsel zu 'gehört zu' gleichen Fehler – Phoenix