Php 向用户查看标签列表的任何提示

Php 向用户查看标签列表的任何提示,php,laravel,view,tags,Php,Laravel,View,Tags,我正在开发服装店应用程序… 每个公司都可以创建。。。类别(如……衬衫、裤子、夹克……等) 并且每个类别都有(多个项目),公司可以插入任何想要添加的标签。 提示:每个公司的每件事都是动态的(类别、项目、标签)。 我的问题:如何查看衣服并根据条目标签过滤衣服 据我所知 这些是你的模型 class Tag { public function categories() { return $this->belongsToMany('App\Category'); } } c


我正在开发服装店应用程序…
  • 每个公司都可以创建。。。类别(如……衬衫、裤子、夹克……等)

  • 并且每个类别都有(多个项目),公司可以插入任何想要添加的标签。

提示:每个公司的每件事都是动态的(类别、项目、标签)。


我的问题:如何查看衣服并根据条目标签过滤衣服

据我所知

这些是你的模型

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

class Category
{
  public function tags()
  {
    return $this->belongsToMany('App\Tag');
  }
  public function items()
  {
    return $this->hasMany('App\Item');
  }
}

class Item
{
  public function category()
  {
    return $this->belongsTo('App\Category');
  }
}
这就是通过单个标签获取所有物品/衣服的方法

在管线中,添加一条管线,如

Route::get('items/tags/{id}', 'ItemController@getByTagId')->name('items.tag.get');
然后在
ItemContoller
中添加如下函数

public function getByTagId($id)
{
  $items = Item::whereHas('category.tags', function($query) use ($id) {
                $query->where('id', $id);
              })
              ->paginate(20);

  return view('items.tags', compact('items'));
}