簡體   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