微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 Laravel 中使用标签搜索

如何解决在 Laravel 中使用标签搜索

我对 Laravel 很陌生

尝试按标签创建搜索系统,例如我有一个 products 表,每个产品在 product_tags 表中都有多个标签product_tags 表有两列 product_idproduct_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 举报,一经查实,本站将立刻删除。