我有如下所示的關係:Laravel嵌套至4級不工作
分類 - >類別 - >產品 - >價格
一個類中包含X的子類別。 子類別包含X產品。 產品含有X的價格(新價格,舊價格,每個價格變動一個記錄)
我想做到以下幾點:
@foreach($categories as $category)
[...]
@foreach($category->subcategories as $subcategory)
[...]
@foreach($subcategory->products as $product)
[...]
@foreach($product->prices as $price)
[... @endforeach x4 ...]
3級第一水平的工作。然而,當使用4th($ product-> prices)時,我得到一個Trying to get property of non-object
錯誤。
在模型中的關係:
Category.php
class Category extends Model
{
public function subcategories()
{
return $this->hasMany('App\SubCategory');
}
}
SubCategory.php
class SubCategory extends Model
{
public function category()
{
return $this->belongsTo('App\Category');
}
public function products()
{
return $this->hasMany('App\Product');
}
}
Product.php
class Product extends Model
{
public function category()
{
return $this->belongsTo('App\Category');
}
public function subcategory()
{
return $this->belongsTo('App\SubCategory');
}
public function price()
{
return $this->hasMany('App\ProductPrice');
}
}
ProductPrice.php
class ProductPrice extends Model
{
public function product()
{
return $this->belongsTo('App\Product');
}
}
這是我送我的看法:
class PageController extends Controller
{
public function showMainPage()
{
$categories = Category::with('subcategories')->get();
$data = array(
"categories" => $categories,
);
return view('index')->with($data);
}
}
這工作得很好,即使有產品,但開始有錯誤使用ProductPrices時。
'$類別=類別::與( 'subcategories.products.prices') - >獲得();' – GONG
完全相同的錯誤@GONG – Scarwolf
你試圖調用'$產品 - >價格'而你的關係是'價格' – GONG