Mysql
 sql >> Database >  >> RDS >> Mysql

Proprietà non definita:Illuminate\Database\Eloquent\Collection::Laravel 5.2

Come afferma il tuo errore:

Stai tentando di accedere a una proprietà su una Collezione, invece di un Modello. Innanzitutto, puoi utilizzare la relazione che hai creato, in questo modo:

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

Ciò garantirà che gli articoli dell'ordine vengano inclusi nel risultato, invece di eseguire un'altra query per recuperarli.

Puoi quindi trasmettere il $order alla vista:

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

(Probabilmente puoi semplicemente omettere orderNumber che era anche l'ordine effettivo)

Quindi puoi accedere all'order nella tua vista e scorrere gli items così:

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

FK

Un altro suggerimento potrebbe essere quello di aggiornare la tabella per utilizzare gli indici per migliorare le prestazioni e renderla pulita, come FK menzioni nel commento della tua migrazione di creazione. Puoi effettuare una migrazione per aggiornarlo, come:

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

E/o amplialo, in base alle tue esigenze (a cascata, ecc.).