PHP Laravel 取上一篇文章和下一篇文章

在开发过程中遇到取上一篇文章和下一篇文章这个功能,其实这个功能很简单,一般来说,上一篇和下一篇都是按照ID来排序,那么就是去这个文章的前一个id,和以一个ID就可以了


上一篇文章

select id,title where id < id order by id desc limit(1);

这样就可以原则上就可以原道上一篇内容 利用order by 然后所有改文章之前的文章按篇(id)倒叙,最上面那个就是我们要选择的上一篇文章

下一篇文章

>select`id`,`title` where `id` > id order by `id` asc limit 1

同样,将所有篇(ID)大于当前文章的内容去取来,然后正序排序,选择最上面的一篇,就是我们紧接着的下一篇文章。

那么这个功能,怎么在Laravel中实现呢?


Laravel中实现上一篇下一篇

比如我们有一个article的表,存着我们id title 还有我们content,
同时有一个对应的Article model 来操作我们的Article库。
首先获得当前的ID $id,上一篇的id可以直接用Eloquent Model来实现

$prev_article = Article::where('id','<',$id)->orderBy('id','desc')->fitst();

$next_article = Article::where('id','>',$id)->orderBy('id','asc')->first();

如果只是想获取文章的id 直接通过Laravel中max方法来实现

$prev_id = Article::where('id','<',$id)->max('id');
$next_id = Article::where('id','>',$id)->min('id');

这两行代码就能直接实现我们想要的代码。

好了。这个简单的功能就这样实现了。

你可能感兴趣的:(web,PHP)