$products = Product::where('name_en','liKE',$search)->get();
但是,如果搜索字符串与该值完全匹配,则会获得产品.如果它包含它我想匹配.我如何处理belongsTo关系?我如何检查标签和子类别的标准?如何将所有东西连在一起,以达到理想的效果?提前致谢.
解决方法 你做错了一件事,你的查询会返回完全匹配,因为你给出了确切的字符串.但是你的查询应该是这样的.$products = Product::where('name_en','%'.$search.'%')->get();
以上查询将为您的产品提供包含搜索字符串的产品.
如果你想在关系表中搜索,那么你可以使用laravel方法join().但还有一种方法,但我总是避免使用这种方法,因为它创建了非常复杂的查询.这很重.所以你可以使用join()方法,它将使用关系表添加内连接.
以下是加入的示例:
$products = Product::join('Tags',function($builder) { $builder->on('Tags.ID','=','products.tag_ID'); // here you can add more conditions on Tags table. }) join('sub_categorIEs',function($builder) { $builder->on('sub_categorIEs.ID','products.tag_ID'); // here you can add more conditions on subcategorIEs table. }) ->where('name_en','%'.$search.'%') ->get();
这是基本示例,您可以根据您的要求使用它.
总结以上是内存溢出为你收集整理的php – Laravel – 查询模型,如果值包含某个字符串(取自搜索输入)全部内容,希望文章能够帮你解决php – Laravel – 查询模型,如果值包含某个字符串(取自搜索输入)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)