我有一些 table .
products(product_id(pk),title)
product_tag(id(pk),tag_id(fk),product_id(fk))
tags(tag_id(pk),tag_name)
我还有其他表与产品有很多关系 . 我在这样的产品模型中 Build 了多对多的关系 .
public function productTags()
{
return $this->belongsToMany("App\Model\TagModel","product_tags","product_id","tag_id");
}
我想要的是按关键字搜索 . 说我有一些关键词
['shirts','pant']
关键字数组可以包含单个项目或多个项目 .
我希望此关键字与tag_name匹配,并通过product_tags表检索与tag_id相关联的产品以及所有此类关键字 Headers 的产品 .
示例:产品表
product_id title
1 half sleeve shirt
2 full sleeve shirt
3 pants
4 women jeans
product_tag表
product_id tag_id
1 1
2 1
3 2
4 3
标签表
tag_id tag_name
1 mens
2 pant
3 women
现在,如果我的搜索关键字数组是
['shirt','pant']
结果应该匹配产品表中的前三个产品 . 前两个产品与关键字直接匹配,第三个产品与tag_id匹配 .
我还有其他表与产品表有很多关系 .
2 回答
如果您使用外部数组作为标记,那么您可以使用此代码段 .
在您的SearchController中尝试这样的事情: