最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Laravel 中獲取上一篇和下一篇數(shù)據(jù)

 更新時間:2015年07月27日 09:03:17   投稿:hebedich  
這篇文章主要介紹了Laravel 中獲取上一篇和下一篇數(shù)據(jù)的相關(guān)資料,需要的朋友可以參考下

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

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

然后,當時在答案里面簡單寫了一下解決方案。不過由于這個取得下一條和取得上一條的記錄其實在日常的開發(fā)當中還是會經(jīng)常遇到,最常見的場景可能就是取得一篇文章的上一篇文章和下一篇文章了。其實這個在Laravel的Eloquent中實現(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字段設(shè)置為一個Carbon對象,然后我們在前端展示的時候就可以根據(jù)published_at來判讀是否將文章展示出來。

比如說查詢語句:

 public function scopePublished($query)
  {
    $query->where('published_at','<=',Carbon::now());
  }

//以上方法位于Article中,下面的查詢我放在了ArticleController中

$articles = Article::latest('published_at')->published()...

View展示:

<li class="previous">
@if($prev_article)
<a href="/post/{{ $prev_article->slug }}" rel="prev"><i class="fa fa-chevron-left"></i><strong>上一篇</strong><span> {{ $prev_article->title }}</span> </a>
@endif
</li>
<li class="next">
@if($next_article && $next_article->published_at < Carbon\Carbon::now())

<a href="/post/{{ $next_article->slug }}" rel="next"><i class="fa fa-chevron-right"></i><strong>下一篇</strong> <span> {{ $next_article->title }}</span></a>
@endif
</li>

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

以上所述就是本文的全部內(nèi)容了,希望大家能夠喜歡。

相關(guān)文章

  • php預定義變量使用幫助(帶實例)

    php預定義變量使用幫助(帶實例)

    php取得外部變量的首選方法是用下面提及的超全局變量。在此之前,人們要么依賴 register_globals,要么就是長長的預定義 PHP 數(shù)組($HTTP_*_VARS)。自 PHP 5.0.0 起,長格式的 PHP 預定義變量可以通過設(shè)置 register_long_arrays 來屏蔽。
    2013-10-10
  • Zend?Framework基于Command命令行建立Zend?Framework項目的方法

    Zend?Framework基于Command命令行建立Zend?Framework項目的方法

    這篇文章主要介紹了Zend?Framework基于Command命令行建立Zend?Framework項目的方法,較為詳細的分析了使用Command命令行建立Zend?Framework框架的具體操作步驟與相關(guān)注意事項,需要的朋友可以參考下
    2017-02-02
  • uni-app結(jié)合PHP實現(xiàn)單用戶登陸demo及解析

    uni-app結(jié)合PHP實現(xiàn)單用戶登陸demo及解析

    這篇文章主要為大家介紹了uni-app結(jié)合PHP實現(xiàn)單用戶登陸示例過程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-05-05
  • 一個PHP實現(xiàn)的輕量級簡單爬蟲

    一個PHP實現(xiàn)的輕量級簡單爬蟲

    這篇文章主要介紹了一個PHP實現(xiàn)的輕量級簡單爬蟲,本文總結(jié)了爬蟲的一些知識如爬蟲的結(jié)構(gòu)、正則表達式、其他問題等,然后給出了爬蟲實現(xiàn)代碼,需要的朋友可以參考下
    2015-07-07
  • PHP實現(xiàn)頁面靜態(tài)化深入講解

    PHP實現(xiàn)頁面靜態(tài)化深入講解

    這篇文章主要介紹了PHP實現(xiàn)頁面靜態(tài)化深入講解,本文講解的很透徹,有感興趣的同學可以研究下
    2021-03-03
  • PHP-FPM和Nginx的通信機制詳解

    PHP-FPM和Nginx的通信機制詳解

    這篇文章主要給大家介紹了關(guān)于PHP-FPM和Nginx通信機制的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-02-02
  • PHP設(shè)計模式之觀察者模式入門與應用案例詳解

    PHP設(shè)計模式之觀察者模式入門與應用案例詳解

    這篇文章主要介紹了PHP設(shè)計模式之觀察者模式入門與應用,結(jié)合具體案例形式詳細分析了PHP觀察者模式的相關(guān)概念、原理、使用方法及操作注意事項,需要的朋友可以參考下
    2019-12-12
  • PHP中Http協(xié)議post請求參數(shù)

    PHP中Http協(xié)議post請求參數(shù)

    這篇文章主要介紹了Http協(xié)議post請求參數(shù)的相關(guān)資料,需要的朋友可以參考下
    2015-11-11
  • CodeIgniter分頁類pagination使用方法示例

    CodeIgniter分頁類pagination使用方法示例

    這篇文章主要介紹了CodeIgniter分頁類pagination使用方法,結(jié)合實例形式簡單分析了CodeIgniter框架中的分頁類pagination基本的配置與使用技巧,需要的朋友可以參考下
    2016-03-03
  • 如何修改Laravel中url()函數(shù)生成URL的根地址

    如何修改Laravel中url()函數(shù)生成URL的根地址

    這篇文章主要給大家介紹了關(guān)于如何修改Laravel中url()函數(shù)生成URL根地址的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用laravel具有一定的參考學習價值,需要的朋友們下面跟著小編來一起學習學習吧。
    2017-08-08

最新評論

新巴尔虎右旗| 阳山县| 会理县| 阜城县| 鹰潭市| 龙川县| 柳林县| 岳普湖县| 仪征市| 广丰县| 武定县| 辛集市| 分宜县| 宁河县| 乐至县| 礼泉县| 司法| 页游| 乐业县| 汕尾市| 五指山市| 蕉岭县| 濮阳县| 昌江| 会昌县| 武山县| 十堰市| 明光市| 吕梁市| 济南市| 成都市| 四平市| 红河县| 扬中市| 潼南县| 广丰县| 哈巴河县| 隆尧县| 辽阳县| 合水县| 永胜县|