Laravel Создание и использование коллекции - PullRequest
0 голосов
/ 06 мая 2020

Привет, я действительно новичок в 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);
}

1 Ответ

1 голос
/ 06 мая 2020

Попробуйте следующее:

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'));
}
...