我试图获取一个查询,该查询为我提供了包含特定列中特定字符串的每条记录(无论第一个字母是大写还是小写。
例如:我传递的字符串是test
我的数据库中有30条记录。其中5个包含测试(小写),其中5个包含测试(大写)。其他20个记录没用,所以我不需要它们。
我昨天得到了一些帮助,但无法让它像我真正想要的那样,输出也是错误的。
这是代码:
$search = $request['search'];
$usergroups = Usergroups::where('name', 'like', '%' . str_slug($search, ' ') . '%')->simplePaginate(3);
$ search是一个包含我想要搜索的字符串的变量。
如果我想搜索Test,我会回复每一条记录。无论它是否包含Test,test或unicorn bla bla。我得到了一切。
有人知道解决这个问题的方法吗?我试过写一个自定义的分页类,但这对我没用。
答案 0 :(得分:0)
仅当您想要为记录提取链接多个where语句时才使用orWhere。
$users = \App\UserGroup::where('name', 'LIKE', '%Test%')->get();
我认为问题可能出在分页上。 我添加了这个以便为我的2条名为Test and test
的记录进行分页$users = \App\UserGroup::where('name', 'LIKE', '%Test%')->simplePaginate(1);
如果您需要使用刀片在视图上显示结果,这可能会有所帮助:
https://laravel.com/docs/5.4/pagination#displaying-pagination-results
答案 1 :(得分:0)
我不太确定,但我认为课程有错误。如果我输出$ usergroups,我得到这个:
current_page 1
data:
// my data
from 1
last_page 2
next_page_url "http://blabla.de/test?page=2"
path "http://blabla.de/test"
per_page 3
prev_page_url
to 3
total 5
你可以清楚地看到共有5个项目(这是真的),并且有2个页面。这也是因为我已经将分页设置为分页(3)。
如果我输出刀片中的链接,我会得到类似的结果:
但如果我点击“2” - 到达最后一页,我不知道为什么,但链接会立即改为1-7。
所以在我想要改变分页链接之前,我得到正确的项目,但如果我改为?page = 2,我会得到表格中的所有项目。我不知道为什么,但也许这就是laravel的错误。我也用laravel 5.3(目前为5.4)尝试了它但是遇到了同样的问题。如果我查看phpmyadmin查询日志并手动尝试查询,我也会得到完美的输出。如果我使用 - > get()而不是 - > paginate();我也得到了正确的输出。我再也不知道了。