Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Undefinierte Eigenschaft:Illuminate\Database\Eloquent\Collection::Laravel 5.2

Wie Ihr Fehler besagt:

Sie versuchen, auf eine Eigenschaft in einer Sammlung statt auf ein Modell zuzugreifen. Zunächst können Sie die von Ihnen erstellte Beziehung wie folgt verwenden:

$order = App\westcoorder::where('id', $orderNumber)->with('westcoorderitem')->firstOrFail();

Dadurch wird sichergestellt, dass die Bestellartikel in das Ergebnis aufgenommen werden, anstatt eine weitere Abfrage auszuführen, um sie abzurufen.

Sie können dann den $order weitergeben zur Ansicht:

return view('welcome', compact('orderNumber', 'order'));

(Sie können wahrscheinlich auch einfach die Bestellnummer weglassen, die die eigentliche Bestellung war)

Dann können Sie auf die order zugreifen in Ihrer Ansicht und durchlaufen Sie die items so:

@foreach($order->westcoorderitem as $item)
    {{ $item->productName }}
@endforeach

FK

Ein weiterer Tipp könnte sein, Ihre Tabelle zu aktualisieren, um Indizes zu verwenden, um die Leistung zu verbessern und sie ordentlicher zu machen, wie FK Sie erwähnen im Kommentar Ihrer Erstellungsmigration. Sie können eine Migration durchführen um es zu aktualisieren, wie:

$table->foreign('westcoorder_id')->references('id')->on('westcoorders');

Und/oder erweitern Sie dies entsprechend Ihren Anforderungen (Kaskadierung usw.).