首页 > 解决方案 > Laravel 集合创建和使用

问题描述

嘿,我对 Laravel 真的很陌生,我无法从我的数据库中获取相关数据。我目前有一些与总体产品系列表相关的表。我目前获得了产品系列,并且正在尝试获取该系列中产品的产品代码。问题是我只返回一个产品而不是一个集合。我知道我没有正确获取信息并且我卡住了。我的控制器目前看起来像这样

public function getProductFamily($id)
{
    $productfamily = ProductFamilyModel::where('id', $id)->first();
    $productskus = ProductModel::where('product_family_id', $id)->get();

    foreach ($productskus as $products){
        $products->product_family()->get();
    }

    return view('product_page', compact('productfamily', 'products'));



}

我为两个产品系列设置了模型:

public function product()
{
    // return $this->hasMany(ProductModel::class, 'product_family_id');
    return $this->hasMany(ProductModel::class, 'product_family_products', 'product_family_id', 'product_guid');

}

产品:

public function product_family()
{
    return $this->belongsToMany(ProductFamilyModel::class, 'product_family_products', 'product_guid', 'product_family_id');
    // return $this->belongsTo(ProductFamilyModel::class);
}

标签: laravelcollectionseloquent

解决方案


尝试这个:

public function getProductFamily($id)
{
    $productfamily = ProductFamilyModel::where('id', $id)->first();
    $products = ProductModel::where('product_family_id', $productfamily->id)->get();

    return view('product_page', compact('productfamily', 'products'));
}

推荐阅读