繁体   English   中英

Laravel-获取包含特定字符串的所有记录

[英]Laravel - get all records that contains a specific string

我试图获得一个查询,该查询为我提供在特定列中包含特定字符串的所有记录(无论第一个字母是大写还是小写)。

例如:我传递的字符串是test

我的数据库中有30条记录。 其中5个包含测试(小写),其中5个包含测试(大写)。 其他20条记录没有用,所以我不需要它们。

昨天我得到了一些帮助,但无法像我真正想要的那样进行,并且输出也错误。

那就是代码:

$search = $request['search'];
        $usergroups = Usergroups::where('name', 'like', '%' . str_slug($search, ' ') . '%')->simplePaginate(3);

$ search是一个包含我要搜索的字符串的变量。

如果我想搜索测试,我只会得到每条记录。 无论它是否包含测试,测试或独角兽等等。 我什么都回来了。

有人知道解决此问题的方法吗? 我试图编写一个自定义的分页类,但对我没有用。

在此处输入图片说明

仅当要链接多个where语句以获取记录时才使用orWhere。

$users = \App\UserGroup::where('name', 'LIKE', '%Test%')->get();

我认为问题可能与分页有关。 我添加了它以使分页适用于名为Test and test的2条记录

$users = \App\UserGroup::where('name', 'LIKE', '%Test%')->simplePaginate(1);

如果您需要在使用刀片的视图上显示结果,这可能会有所帮助:

https://laravel.com/docs/5.4/pagination#displaying-pagination-results

我不太确定,但我认为课程有误。 如果我输出$ 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个项目(多数民众赞成true),共有2页。 那也是正确的原因,因为我已将分页设置为paginate(3)。

如果我在刀片中输出链接,则会得到以下信息:

在此处输入图片说明

但是,如果我单击“ 2”-转到最后一页,我不知道为什么,但是链接会立即变为1-7。

在此处输入图片说明

因此,在更改分页链接之前,我得到了正确的项,但是如果更改为?page = 2,则会获得表中的所有项。 我不知道为什么,但是那可能是laravel的错误。 我也使用laravel 5.3(当前为5.4)进行了尝试,但是遇到了同样的问题。 如果查看phpmyadmin查询日志并手动尝试查询,我也会得到完美的输出。 如果我使用-> get()而不是-> paginate(); 我也得到正确的输出。 我已经不知道了

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM