有时候一个念头或想法在不經意间蹦出——就像是一段美好的邂逅让人淡然而有些欣喜。写这篇博客的由来也是如此——“查询条件的排序的不同可能会对查询效率有影响”的想法突然出现在我的脑海里,而且我饶有兴致的细想了下经过测试,但无奈的是我本地只有2w多的数据量数据量太小,無法测试出其真实的结果这也是为何这篇博客的标题中说是'漫谈'的原因;'漫谈'很可能就是乱弹,我所说的只是我想当然的未经证实;但峩仍想也感觉有必要把所考虑的跟大家分享交流下,就是板儿砖满天飞也无所谓以求正解!
如上图,就是淘宝网的商品搜索页我所要说的会直截了当的围绕上图谈起——只用看上图中绿色框部分,对于搜索功能的sql查询分别是 价格和分类 这两个查询(where)条件,单就(where)条件嘚拼接有以下两种写法(以下sql只是为了辅助说明我的想法而已非淘宝真实实现):
这个问题也是老生常谈了顶部搜索好做,分页也好做但是带着条件分页就不太好做。也是博主自己看文档不仔细后面仔细看文档,发现了laravel 5.5 本身就提供了这样┅个方法
博主本来是用post的方式传递条件查询的。但是在laravel自带的分页中点击分页执行的是get请求,会把分页的页码page直接顯示在地址栏所以用post传递查询条件不太好,因此改为get表单提交顶部条件
这里大家平时接收参数,大多数只是单纯的接收参数我们这裏由于是带的顶部搜索,所以在获取不到搜索值的情况下应该给一个默认的参数。通过判断来确定到底是简单的展示页面还是带有查询條件的展示页面
这部分就是判断获取的参数,在没有搜索条件的时候是不会影响正常查询的
3、附加条件参数到分页链接中(视图传参)
//你可以使用 appends 方法将查询参数附加条件到分页链接中。
//例如要将 sort=votes 附加条件到每个分页链接,可以这样调用 appends 方法:
这部分是laravel官方给出的方法我们可以在展示的时候,把参数传递进去
4、附加条件参数到分页链接中(控制器传参)
//这部分是在控制器中,把参数添加进去添加完成之后就可以了
以上就是laravel5.5中带有条件的顶部搜索。文档是个好东西