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

这里的搜索功能主要基于表单get提交实现的

<form action=\"/backend/auditList\" method=\"get\">
  <table class=\"search_tab\">
    <tr>
      <th width=\"120\">选择分类:</th>
      <td>
        <select name=\"class\" >
          <option value=\"\">全部</option>
          @foreach($category as $c)
            <option value=\"{{$c->id}}\">{{$c->class_name}}</option>
          @endforeach
        </select>
      </td>
      <th width=\"70\">文章标题:</th>
      <!--查询关键词-->
      <td><input type=\"text\" name=\"keywords\" placeholder=\"文章标题\"></td>
      <td><input type=\"submit\" name=\"sub\" value=\"查询\"></td>
    </tr>
  </table>
</form>

php部分逻辑

public function article_list(){
  //echo \'zoule\';exit; 测试表单是否走进方法中 大家随意写
  $shownum = 1;
  if(array_key_exists(\'class\',$_GET)||array_key_exists(\'keywords\',$_GET)){
   //echo \'111\'; 
   if($_GET[\'class\']){
   //Article模型 leftJoin表连接 查询根据俩个表里的这些字段来执行
     $postdata = Article::leftJoin(\'category\', function($join) {
      $join->on(\'article.class_id\', \'=\', \'category.id\');
     })->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);
   }elseif($_GET[\'keywords\']){
     $postdata = Article::leftJoin(\'category\', function($join) {
      $join->on(\'article.class_id\', \'=\', \'category.id\');
     })->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);
    
   }else{
     $postdata = Article::leftJoin(\'category\', function($join) {
      $join->on(\'article.class_id\', \'=\', \'category.id\');
     })->select([\'article.id\',\'category.class_name\',\'article.status\',\'article.title_editing\',\'article.update_time\'])->orderBy(\'release_time\',\'desc\')->paginate($shownum);
   }
  }else{
   //echo \'2222\';
   $postdata = Article::leftJoin(\'category\', function($join) {
     $join->on(\'article.class_id\', \'=\', \'category.id\');
   })->select([\'article.id\',\'category.class_name\',\'article.status\',\'article.title_editing\',\'article.update_time\'])->orderBy(\'release_time\',\'desc\')->paginate($shownum);
  }
  //分类id不是父id
  $category = DB::table(\'category\')->where(\'parent_id\',\'!=\',\'0\')->get();
  //渲染页面 传递 参数
  return view(\'backend.article_list\',[\'postdata\'=>$postdata,\'shownum\'=>$shownum,\'category\'=>$category]);
}

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容