[英]Laravel: eager loading both belongsTo and HasMany relationships?
我有兩個與產品和ProductCategory相關的模型,一個產品屬於一個產品類別,而一個產品類別可以有多個產品。
這是我的模型:
產品:
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Product extends Model
{
protected $table = 'products';
public function productcategory()
{
return $this->belongsTo('App\Models\ProductCategory');
}
}
產品分類:
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class ProductCategory extends Model
{
protected $table = 'productcategories';
public function products()
{
return $this->HasMany('App\Models\Product');
}
}
我檢索所有類別及其各自的附屬產品,如下所示:
$productCategories = ProductCategory::with('products')->get();
這可行,但是我想要它,以便我可以從產品中訪問產品類別信息,這是因為我正在使用vue循環遍歷每個類別產品,但是我需要從產品本身訪問類別信息,不僅是product_category_id,還包括其他字段!
在我的組件中,我想這樣做:
product.productcategory.name
但是目前我只能訪問:
product.product_category_id
我不想對我的API進行Ajax調用來獲取此信息,如何解決呢?
您可以像這樣輕松地使用嵌套的渴望加載
$productCategories = ProductCategory::with('products', 'products.productcategory')->get();
但是您應該考慮直接在vue文件中重新使用ProductCategory值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.