【发布时间】:2016-10-03 05:47:54
【问题描述】:
有一个网店的数据结构:
Series -> (many to many) -> categories -> (many to many) -> products
例如,系列为“户外系列”,类别为“T恤”,产品为“T恤A、T恤B等……”
这是列出一个类别中的产品的控制器
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 没那么雄辩吧
-
和
$series->category->product()出了什么问题,结果是什么?
标签: php html mysql laravel many-to-many