簡體   English   中英

Laravel:渴望同時加載belongsTo和HasMany關系嗎?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM