我有两个模型Product和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');
}
}
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调用来获取此信息,我该如何解决呢?
答案 0 :(得分:0)
您可以像这样轻松使用nested eager loading
$productCategories = ProductCategory::with('products', 'products.productcategory')->get();
但是您应该考虑直接在vue文件中重新使用ProductCategory值。