Dans mon contrôleur je:Laravel Relations de travail, mais le montrer -> Essayer d'obtenir la propriété d'objet non
public function showMainPage()
{
$categories = Category::with('subcategories.products.prices', 'subcategories.products.image')->get();
$data = array(
"categories" => $categories,
);
return view('index')->with($data);
}
Quand je référence à ce à mon avis comme celui-ci:
@foreach($subcategory->products as $product)
<img src="{{ $product->image->thumbnail }}" alt="">
I obtenez une erreur Trying to get property of non-object
.
C'est ma relation:
product.php
public function image()
{
return $this->belongsTo('App\ProductImage');
}
Ceci est mon productImage Relation:
public function product()
{
return $this->belongsTo('App\Product');
}
Qu'est-ce qui ne va pas là-bas?
Les deux relations ont un 'belongsTo', ce n'est pas correct. Le produit devrait probablement être 'hasMany'. – Andrew
@Scarwolf il semble que, selon vous, vous obtenez un tableau au lieu d'une collection. Pourriez-vous s'il vous plaît vérifier en utilisant '$ product ['image'] ['thumbnail']' – jaysingkar
Andrew: Oh, vous avez raison. Changé à hasOne, toujours le même, cependant. (1 rangée d'image pour chaque produit). @jaysingkar Cela fonctionne. Pourquoi laravel renvoie un tableau bien? Comment puis-je changer cela à une collection ...? – Scarwolf