搜索功能还是存在bug,在搜索后点击下一也又变成了全文搜索
//首页方法
public function index()
{
//设置全局条件查询
$map = [];//将所有的查询条件封装到这个数组
//条件1
$map[] = ['status','=',1];//这里的等号不能省略
//实现搜索功能
$keywords = Request::param('keywords');
if(!empty($keywords)){
//条件2
$map[] = ['title','like','%'.$keywords.'%'];
}
//分类信息显示 从url发送到 控制器中获取参数
$cateId = Request::param('cate_id');
//如果存在这个分类id
if(isset($cateId)){
//条件3
$map[] = ['category_id','=',$cateId];
$res = ArticleCategory::get($cateId);
$artList = Db::table('zh_article')
->where($map)
->order('create_time','desc')->paginate(1);
//分配到首页模板中
$this->view->assign('cateName',$res->name);
}else{
$this->view->assign('cateName','全部文章');
$artList = Db::table('zh_article')->where($map)
->order('create_time','desc')->paginate(1);
}
//列表信息的分页显示
//通过模型获取数据 方法一:与闭包相似
/*if(isset($cateId)){
$artList = Db::table('zh_article')->where('status',1)
->where('category_id',$cateId)
->order('create_time','desc')->paginate(1);
}else{
$artList = Db::table('zh_article')->where('status',1)
->order('create_time','desc')->paginate(1);
}*/
$this->view->assign('empty','<h3>没有文章</h3>');
$this->view->assign('artList',$artList);
return $this->fetch('index',['title'=>'社区问答']);
}
前端搜索功能
<form class="navbar-form navbar-left" action="{:url('index/index')}" method="get">
<div class="form-group">
<input type="text" name="keywords" class="form-control" placeholder="请输入关键字">
</div>
<button type="submit" class="btn btn-default">搜索</button>
</form>
当查询不到数据时,前端模板变量会因为没有值而报错的情况,处理情况为
$this->view->assign('empty','<h3>没有文章</h3>');
{volist name="artList" id="art" empty="$empty"}
<div>
<img class="img-rounded" src="http://localhost/zh/public/uploads/{$art.title_img}" style="margin-right: 40px;float: left;width: 100px;height: 85px">
<div style="float: left;width: 80%;">
<h4><a href="">{$art.title}</a></h4>
<p>发布者:{$art.user_id|getUserName} 发布时间:{$art.create_time|date='Y-m-d'}</p>
<div>{$art.content|getArtContent}</div>
<hr>
</div>
</div>
{/volist}