gpt4 book ai didi

php - 如何在 laravel 中获取多对多的关系项

转载 作者:太空狗 更新时间:2023-10-29 13:28:26 24 4
gpt4 key购买 nike

有一个电子商店的数据结构:

Series -> (many to many) -> categories -> (many to many) -> products

例如系列为“户外系列”,类别为“t恤”,产品为“t恤A,t恤B等...”

这是在一个类别中列出产品的 Controller

public function view($series = 0, $cat = 0, $page = 1) {
$category = Category::find($cat);

$totalItems = count($category->product);
$itemsPerPage = 30;
$currentPage = $page;
$urlPattern = "/ums/product/view/$series/$cat/(:num)";

$this->data['product_list'] = $category->product()->orderBy('created_at', 'desc')->skip(($page - 1) * $itemsPerPage)->take($itemsPerPage)->get();
$this->data['paginator'] = new Paginator($totalItems, $itemsPerPage, $currentPage, $urlPattern);
$this->data['category'] = $category;
$this->data['page'] = $page;
return view('product/list')->with($this->data);
}

现在,问题是,我想重写代码,以便不显示一个类别,我也想显示一个系列。

这意味着如果 $series = 0 ,那么它显示一个类别的产品,如果 $cat = 0,那么它显示 multi 类别的产品

在laravel中如何获取多类商品?尝试 $series->category->product() 但没有运气,还有如何重写该函数以支持系列的显示?

非常感谢。

最佳答案

假设 Laravel 模型类 - 系列、类别和产品

为系列模型类,创建一个函数

   public function categories()
{
return $this->belongsToMany('App\Category');
}

为类别模型类创建一个函数

   public function products()
{
return $this->belongsToMany('App\products');
}

现在对于给定的系列,您可以使用简单的函数调用

$categories = $series->categories();

终于来到了在多个类别下显示产品的主要问题。

for($categories as $category)
{
$productsOfThisCategory = $categories->products();
//save into some other data structure, say an array $allProducts
}

$allProducts 将为特定系列提供多类别产品。

引用:Standard eloquent relationship -Many to Many

关于php - 如何在 laravel 中获取多对多的关系项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37609660/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com