sql >> Databasteknik >  >> RDS >> Mysql

Odefinierad egenskap:Illuminate\Database\Eloquent\Collection::Laravel 5.2

Som ditt fel säger:

Du försöker komma åt en egenskap på en samling istället för en modell. Först kan du använda relationen du skapade, så här:

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

Detta säkerställer att beställningsartiklarna kommer att inkluderas med resultatet, istället för att köra en annan fråga för att hämta dem.

Du kan sedan skicka vidare $order till vyn:

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

(Du kan nog bara utelämna ordernumret som var den faktiska beställningen också)

Då kan du komma åt order i din vy och gå igenom items så här:

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

FK

Ett annat tips kan vara att uppdatera din tabell för att använda index för att förbättra prestandan och göra den snygg, som FK du nämner i kommentaren om din skapa migrering. Du kan göra en migrering för att uppdatera den, som:

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

Och/eller utöka detta, enligt dina behov (cascading, etc).




  1. Prestandaskillnader mellan lika (=) och IN med ett bokstavligt värde

  2. Infoga efter trunkering börja från 1; men infoga efter radering återupptas från föregående värde

  3. Gör en enda tabell i mysql skrivskyddad

  4. Hur ställer man in tidszonsregionen för JDBC Connection och undviker att SqlException-tidszonsregionen inte hittas?