雅安论坛

标题: Laravel中实现上一篇下一篇实现 [打印本页]

作者: 匿名    时间: 2022-11-30 16:14
标题: Laravel中实现上一篇下一篇实现
本帖最后由 匿名 于 2022-11-30 16:22 编辑

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

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

  2. $next_article = Article::where('id','>',$id)->orderBy('id','asc')->first();
复制代码
如果只是想获取文章的id 直接通过Laravel中max方法来实现
  1. $prev_id = Article::where('id','<',$id)->max('id');
  2. $next_id = Article::where('id','>',$id)->min('id');
复制代码
  1. public function al_xq(Request $request)
  2. {
  3.    
  4. if($request->isMethod('GET'))
  5.    {
  6.      $fl  = DB::table('cb_fwxmfl')->orderBy('id','desc')->get();
  7.      $res =   Anli::where(['id'=>$request->id])->first();  
  8.      $al  = DB::table('cb_anli_fenlei')->orderBy('id','desc')->get();

  9.      $s = Anli::where('id','<',$request->id)->orderBy('id','desc')->first(); //上一篇

  10.      $x = Anli::where('id','>',$request->id)->orderBy('id','asc')->first(); //下一篇
  11.    

  12.     return view('m/al_xq',['fl'=>$fl,'res'=>$res,'al'=>$al,'s'=>$s,'x'=>$x]);
  13.     }
  14. }
复制代码
前端代码为:
  1. <div class="main-desc">
  2.         <blockquote>{!! htmlspecialchars_decode($res->content) !!}</blockquote>
  3.       
  4.         <div class="piece">
  5.       <a href=" {{ route('al_xq',['id'=>$s->id]) }} ">
  6.         <i class="fa fa-angle-double-left fa-fw" aria-hidden="true"></i>
  7.         <span>上一篇:<span>{{$s->name}}</span></span>
  8.       </a>
  9.       <a href="{{ route('al_xq',['id'=>$s->id]) }}">
  10.         <span>下一篇:<span></span>{{$x->name}}</span>
  11.         <i class="fa fa-angle-double-right fa-fw" aria-hidden="true"></i>
  12.       </a>
  13.     </div>
  14.   </div>
复制代码







欢迎光临 雅安论坛 (https://www.yaanbbs.net/) Powered by Discuz! X3.4