您好,登錄后才能下訂單哦!
這篇文章主要介紹laravel-admin中如何實現后臺表格篩選設置默認查詢日期的方法,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
一、框架版本說明
laravel 5.5
laravel-admin 1.7.5
二、表格日期篩選使用
后端調用代碼
$grid->filter(function(Grid\Filter $filter){ $filter->like('title', '標題'); $filter->between('created_at', '發布日期')->date(); });
日期篩選條件對應的前端界面如下圖:
三、需要設置默認查詢日期的原因
對于大表查詢如果沒有默認的條件限制,查詢數據庫會非常的慢,count(*) 總數都要好幾秒
為了解決上面的問題,所以需要加默認的條件限制
這個問題是老大解決的,下面先說明處理的方法,再記錄下自己走的彎路
四、處理方法
在方法開始出加上代碼:
if(empty(request()->created_at)){ request()->offsetSet('created_at',Helper::lastConditionDate('month')); }
為什么要這樣寫了,就是給Request對象設置請求參數created_at,就這么簡單。 下面是一些簡要的說明
時間查詢條件字段created_at
Helper::lastConditionDate('month') 這個行代碼得到是一個時間起止的數據:
Array ( [start] => 2019-07-09 [end] => 2019-08-08 )
設置這個數據,是因為laraval-admin的日期查詢條件就是這樣提交到前端的,見下圖:
以上就是問題的處理方法。
下面記錄下,自己解決這個問題是怎么誤入歧途的
開始時這樣寫的:
標題可以設置成功,默認的日期設置不了,為什么了?
官方文檔、網上搜索了一堆,還是沒有找到解決方法。我開始懷疑是不是源碼的問題了,于是看源碼這塊是不是沒有設置了,
看源碼初始化的時候果然是沒有設置。于是自己加了幾行代碼,見上圖紅框處。
刷新頁面,果然可以看到設置的默認值了,別高興太早,馬上測試就發現問題。
重新選擇日期查詢,還是顯示的是默認日期條件。。。。。。。
這是老大過來,看了下,很快就解決了,上面已經記錄了。
自己出現的問題如下:
看標題可以設置默認值,就想當然的認為日期也是在那里設置的。
其實標題設置在第一次打開列表頁面,數據庫查詢并沒有標題的查詢條件,只是顯示到了頁面上。
以上是“laravel-admin中如何實現后臺表格篩選設置默認查詢日期的方法”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。