Laravel - 获得包含特定字符串
我试图让一个查询,给我一个包含一个特定的列的特定字符串(无论第一个字母是大写还是小写每一条记录的所有记录Laravel - 获得包含特定字符串
。例如:我传递的字符串是test
而且我在我的数据库中有30条记录,其中5条记录包含test(小写),其中5条包含test(大写)。 ,所以我不需要他们
昨天我得到了一些帮助,但不能让它像我真的想要的那样,并且输出也是错误的
多数民众赞成代码:
$search = $request['search'];
$usergroups = Usergroups::where('name', 'like', '%' . str_slug($search, ' ') . '%')->simplePaginate(3);
$搜索是一个包含我要搜索的字符串变量。
如果我想搜索测试,我只返回每条记录。无论它是否包含测试,测试或独角兽bla bla。我得到一切回来。
有人知道一种方法来解决这个问题吗?我试图编写一个自定义的分页类,但没有为我工作。
我不太确定,但我认为这个班有一个错误。如果我输出$群组我得到这个:
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。
所以之前我想改变分页链接,我得到物品的权利amound,但如果我改变?页= 2,我得到我的表中的所有项目。我不知道为什么,但也许这是laravel的错误。我也用laravel 5.3(目前是5.4)来试用它,但遇到同样的问题。如果我查看phpmyadmin查询日志并手动尝试查询,我也会得到完美的输出结果。如果我使用 - > get()而不是 - > paginate();我也得到正确的输出。我不知道了。
只有当你想链多使用orWhere这里为您记录读取语句。
$users = \App\UserGroup::where('name', 'LIKE', '%Test%')->get();
我认为这个问题可能与分页有关。 我加了这个让分页我的2条记录工作命名为测试和测试
$users = \App\UserGroup::where('name', 'LIKE', '%Test%')->simplePaginate(1);
如果需要使用刀片显示在一个视图中的结果,这可能会有帮助:
https://laravel.com/docs/5.4/pagination#displaying-pagination-results
我已经把它从或从哪里改变到哪里。但我仍然获得所有记录 – dwdawdawdaw
您可以添加该表结构以便重现它吗? – adrastious
当然,我已经更新了这个问题 – dwdawdawdaw
为什么在没有'where'的情况下使用'orWhere'? –
使用'where'并且还可以使用'str_slug' laravel函数进行更多的纵容。 –
让我试试这个。 – dwdawdawdaw