Mysql
 sql >> Base de données >  >> RDS >> Mysql

Propriété non définie :Illuminate\Database\Eloquent\Collection ::Laravel 5.2

Comme votre message d'erreur :

Vous essayez d'accéder à une propriété sur une collection, au lieu d'un modèle. Tout d'abord, vous pouvez utiliser la relation que vous avez créée, comme suit :

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

Cela garantira que les éléments de la commande seront inclus dans le résultat, au lieu d'exécuter une autre requête pour les récupérer.

Vous pouvez ensuite transmettre le $order à la vue :

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

(Vous pouvez probablement omettre le numéro de commande qui était également la commande réelle)

Ensuite, vous pouvez accéder à la order dans votre vue et parcourez les items comme ceci :

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

FK

Une autre astuce pourrait être de mettre à jour votre table pour utiliser des index pour améliorer les performances et la rendre soignée, comme le FK vous mentionnez dans le commentaire de votre création de migration. Vous pouvez effectuer une migration pour le mettre à jour, comme :

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

Et/ou étoffer cela, selon vos besoins (cascadage, etc).