• 售前

  • 售后

热门帖子
入门百科

laravel框架关于搜索功能的实现

[复制链接]
爸证欢 显示全部楼层 发表于 2021-10-25 18:45:42 |阅读模式 打印 上一主题 下一主题
这里的搜索功能主要基于表单get提交实现的
  1. <form action="/backend/auditList" method="get">
  2.   <table class="search_tab">
  3.     <tr>
  4.       <th width="120">选择分类:</th>
  5.       <td>
  6.         <select name="class" >
  7.           <option value="">全部</option>
  8.           @foreach($category as $c)
  9.             <option value="{{$c->id}}">{{$c->class_name}}</option>
  10.           @endforeach
  11.         </select>
  12.       </td>
  13.       <th width="70">文章标题:</th>
  14.       <!--查询关键词-->
  15.       <td><input type="text" name="keywords" placeholder="文章标题"></td>
  16.       <td><input type="submit" name="sub" value="查询"></td>
  17.     </tr>
  18.   </table>
  19. </form>
复制代码
php部门逻辑
  1. public function article_list(){
  2.   //echo 'zoule';exit; 测试表单是否走进方法中 大家随意写
  3.   $shownum = 1;
  4.   if(array_key_exists('class',$_GET)||array_key_exists('keywords',$_GET)){
  5.    //echo '111';
  6.    if($_GET['class']){
  7.    //Article模型 leftJoin表连接 查询根据俩个表里的这些字段来执行
  8.      $postdata = Article::leftJoin('category', function($join) {
  9.       $join->on('article.class_id', '=', 'category.id');
  10.      })->select(['article.id','category.class_name','article.status','article.title_editing','article.update_time'])->where('article.class_id','=',$_GET['class'])->orderBy('release_time','desc')->paginate($shownum);
  11.    }elseif($_GET['keywords']){
  12.      $postdata = Article::leftJoin('category', function($join) {
  13.       $join->on('article.class_id', '=', 'category.id');
  14.      })->select(['article.id','category.class_name','article.status','article.title_editing','article.update_time'])->where('article.title_editing','=',$_GET['keywords'])->orderBy('release_time','desc')->paginate($shownum);
  15.    
  16.    }else{
  17.      $postdata = Article::leftJoin('category', function($join) {
  18.       $join->on('article.class_id', '=', 'category.id');
  19.      })->select(['article.id','category.class_name','article.status','article.title_editing','article.update_time'])->orderBy('release_time','desc')->paginate($shownum);
  20.    }
  21.   }else{
  22.    //echo '2222';
  23.    $postdata = Article::leftJoin('category', function($join) {
  24.      $join->on('article.class_id', '=', 'category.id');
  25.    })->select(['article.id','category.class_name','article.status','article.title_editing','article.update_time'])->orderBy('release_time','desc')->paginate($shownum);
  26.   }
  27.   //分类id不是父id
  28.   $category = DB::table('category')->where('parent_id','!=','0')->get();
  29.   //渲染页面 传递 参数
  30.   return view('backend.article_list',['postdata'=>$postdata,'shownum'=>$shownum,'category'=>$category]);
  31. }
复制代码

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作