sql >> Database >  >> RDS >> Mysql

Ongedefinieerde eigenschap:Illuminate\Database\Eloquent\Collection::Laravel 5.2

Zoals uw foutstaten:

U probeert toegang te krijgen tot een eigenschap van een collectie in plaats van een model. Ten eerste kunt u de relatie die u hebt gemaakt gebruiken, zoals:

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

Dit zorgt ervoor dat de bestelitems worden opgenomen in het resultaat, in plaats van een nieuwe zoekopdracht uit te voeren om ze op te halen.

U kunt dan de $order . doorgeven naar het uitzicht:

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

(Je kunt waarschijnlijk ook gewoon het ordernummer weglaten dat de eigenlijke bestelling was)

Dan heb je toegang tot de order in uw weergave en doorloop de items zoals dit:

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

FK

Een andere tip zou kunnen zijn om uw tabel bij te werken om indexen te gebruiken om de prestaties te verbeteren en netjes te maken, zoals de FK u vermeldt in de opmerking van uw migratie maken. U kunt een migratie maken om het bij te werken, zoals:

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

En/of dit uitbreiden, al naar gelang uw behoeften (cascadering, enz.).




  1. Automatisch e-mailsysteem om databaseoverzichtsrapport te verzenden

  2. mysql - hoeveel kolommen is te veel?

  3. Hoe parallelle plannen opstarten - deel 1

  4. MySQL selecteert de datum van gisteren