Dans mon projet, j'ai des commandes qui ont de nombreux produits et clients qui ont beaucoup de commandes. Je suis confus parce que je veux obtenir toutes les commandes qu'un certain client a et les produits de chaque commande. J'ai foiré quelque chose quelque part et je ne suis pas sûr si j'ai réglé mes relations correctement. Voici ma table des produits:Impossible d'afficher les données en vue du modèle dans Laravel
Voici ma table de clients:
Et voici ma commande tableau:
Voici mes modèles :
Produit:
class Product extends Model
{
public function orders()
{
return $this->belongsToMany('App\Order');
}
}
Ordre:
class Order extends Model
{
public function products()
{
return $this->hasMany('App\Product', 'id');
}
public function customer()
{
return $this->belongsTo('App\Customer');
}
}
Client:
class Customer extends Model
{
public function orders()
{
return $this->hasMany('App\Order', 'id');
}
}
Je reçois tous les clients de ma base de données avec App\Customer::all()
dans mon CustomersController et transmettre les données dans mon customers.blade .php.
<h1>Customers:</h1>
@foreach($customers as $customer)
<h3>{{$customer->name}}</h3>
@foreach($customer->orders as $order)
<p>Order ID: {{$order->id}}</p>
@foreach($order->products as $product)
<p>Product title: {{$product->title}}</p>
@endforeach
@endforeach
<hr>
@endforeach
est ici la sortie:
Si quelqu'un pourrait expliquer pourquoi il fait tout pas sortie et donner quelques conseils si cela est la voie à suivre avec les relations, je serais très reconnaissant.
Essayez de changer {{}} en {!! !!} –
pour changer le modèle 'return $ this-> hasMany ('App \ Product', 'id');' retourner '$ this-> hasMany ('App \ Product');' –