成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Laravel Eloquent取上一條和下一條數(shù)據(jù)

shery / 2959人閱讀

摘要:不過由于這個取得下一條和取得上一條的記錄其實在日常的開發(fā)當中還是會經(jīng)常遇到,最常見的場景可能就是取得一篇文章的上一篇文章和下一篇文章了。取得下一篇的文章基本上可以說是同理可得。

原文來自:https://jellybool.com/post/laravel-get-next-and-prev-posts-with-eloquent

首先文章的起源來與SF上面的一個問題:

Laravel的Eloquent ORM 怎么獲取當前記錄的下一條

然后,當時在答案里面簡單寫了一下解決方案。不過由于這個取得下一條和取得上一條的記錄其實在日常的開發(fā)當中還是會經(jīng)常遇到,最常見的場景可能就是取得一篇文章的上一篇文章和下一篇文章了。其實這個在LaravelEloquent中實現(xiàn)還是挺容易的,不過由于Laravel并沒有直接提供給我們相應的方法,我們得使用一個小小的技巧:

取得上一篇的文章id
protected function getPrevArticleId($id)
    {
        return Article::where("id", "<", $id)->max("id");
    }

$id就是當前文章的id,我們通過max()來取得比當前id小的最大值,也就是當前id的前一篇文章的id。

取得下一篇的文章id
protected function getNextArticleId($id)
    {
        return Article::where("id", ">", $id)->min("id");
    }

基本上可以說是:同理可得。這個取得下一篇文章的id其實就是一個相反的過程,理解萬歲。

一旦我們?nèi)〉蒙弦黄拖乱黄奈恼耰d之后,我們就可以隨心所欲了,比如:

$next_article = Article::find($this->getNextArticleId($article->id));
多說兩句

那如果是對于一個文章的管理來說,我們其實可以這么做:

articles表中增加一個published_at的字段,這里可以將published_at字段設置為一個Carbon對象,然后我們在前端展示的時候就可以根據(jù)published_at來判讀是否將文章展示出來。

比如說查詢語句:

 public function scopePublished($query)
    {
        $query->where("published_at","<=",Carbon::now());
    }
//以上方法位于Article中,下面的查詢我放在了ArticleController中

$articles = Article::latest("published_at")->published()...
View展示:


處理文章的前一篇和后一篇的解決方案已完成。

Happy Hacking

文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉載請注明本文地址:http://systransis.cn/yun/21034.html

相關文章

  • laravel5.5手寫教程4Eloquent ORM分頁及軟刪除

    摘要:從而達到了軟刪除。不過,你可以通過在查詢中調(diào)用方法來強制查詢已被軟刪除的模型方法也可以被用在關聯(lián)查詢只取出軟刪除數(shù)據(jù)會只取出軟刪除數(shù)據(jù)恢復被軟刪除的模型有時候你可能希望取消刪除一個已被軟刪除的模型。 Laravel 有三寶,路由、容器和 Eloquent ORM,Eloquent ORM。我個人一直比較推薦于在實際操作中學習,之前簡單了解了路由和Eloquent ORM的基本用法,今天...

    mindwind 評論0 收藏0
  • Laravel 5.4 入門系列 4. 任務列表顯示(2)

    摘要:同時,傳入?yún)?shù),即已存在的查詢。因此,更為常見的做法是在控制器中處理路由請求。 這一節(jié),我們進一步完善上一節(jié)創(chuàng)建的任務列表。主要知識點: Eloquent Model 控制器 路由模型綁定 Eloquent Model 新增遷移 首先,我們?yōu)閿?shù)據(jù)庫表 tasks 新增一個字段 completed,用來表示任務是否完成: $ php artisan make:migration ad...

    banana_pi 評論0 收藏0
  • Laravel 5系列教程五:MVC的基本流程

    摘要:原文來自免費視頻教程地址期間受到很多私事影響,終于還是要好好寫寫的教程了。我們來實現(xiàn)這個功能顯示文章詳情通過文章展示來快速體驗上面的流程注冊路由來到中,我們增加一個路由上面的路由指定我們需要加載中的方法。 原文來自: https://jellybool.com/post/programming-with-laravel-5-model-controller-view-basic-wor...

    mrcode 評論0 收藏0
  • 個人整理, 閱讀過的好文章 (每天隨時更新)

    摘要:大家有好的文章可以在評論下面分享出來共同進步本文鏈接數(shù)組使用之道程序員進階學習書籍參考指南教你在不使用框架的情況下也能寫出現(xiàn)代化代碼巧用數(shù)組函數(shù)框架中間件實現(xiàn)沒錯,這就是面向?qū)ο缶幊淘O計模式需要遵循的個基本原則令人困惑的在中使用協(xié)程實現(xiàn)多任 大家有好的文章,可以在評論下面分享出來, 共同進步! 本文github鏈接 php PHP 數(shù)組使用之道 PHP程序員進階學習書籍參考指南 教你...

    Chiclaim 評論0 收藏0
  • laravel手動創(chuàng)建數(shù)組分頁

    摘要:目前,無法高效執(zhí)行使用語句的分頁操作。如果你需要在分頁結果集中使用,建議你查詢數(shù)據(jù)庫并手動創(chuàng)建分頁器。手動創(chuàng)建分頁如果你想手動創(chuàng)建分頁實例并且最終得到一個數(shù)組類型的結果,可以根據(jù)需求來創(chuàng)建或者實例來實現(xiàn)。 showImg(https://segmentfault.com/img/bVbbGos?w=640&h=400); laravel分頁功能: 有幾種方法可以對數(shù)據(jù)進行分頁。最簡單的...

    acrazing 評論0 收藏0

發(fā)表評論

0條評論

shery

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<