如何解决在 Laravel 中使用标签搜索
我对 Laravel 很陌生
尝试按标签创建搜索系统,例如我有一个 products
表,每个产品在 product_tags
表中都有多个标签。 product_tags
表有两列 product_id
和 product_tag
$search = $req->get('search'); // Input from user
$products = Product::with(['images','tags'])
->where('id','LIKE','%'.$search.'%')
->orWhere('product_name','%'.$search.'%')
->orWhere('product_price','%'.$search.'%')
->get();
dd($products);
产品模态
class Product extends Model
{
use HasFactory;
public function images()
{
return $this->hasMany(Productimage::class,'product_id','id')->orderBy('id','desc');
}
public function tags()
{
return $this->hasMany(ProductTag::class,'desc');
}
}
解决方法
Product::with(['images','tags'])
->where(function ($query) use ($search) {
$query->where('id','LIKE','%'.$search.'%')
->orWhere('product_name','%'.$search.'%')
->orWhere('product_price','%'.$search.'%');
})
->orWhereHas('tags',function ($query) use ($search) {
$query->where('product_tag','%'.$search.'%');
})
->get();
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。