牛骨文教育服务平台(让学习变的简单)
博文笔记

Yii2.0 多条件搜索 带分页

创建时间:2016-12-21 投稿人: 浏览次数:207

                                       方法一

   在控制器中

 public function actionShow(){
    $where["title"]=Yii::$app->request->get("title");
    $where["content"]=Yii::$app->request->get("content");
    $query=new Query();
    $query->from("votes");
    // votes 是表名
 if(!empty($where["title"])||!empty($where["content"])){
        $query->andFilterWhere(
            ["like","title",$where["title"]]
        )->orFilterWhere(
           ["like","content",$where["content"]]
        );
    }
    $users=$query->from("votes")->all();
    $pages = new Pagination(["totalCount" =>$query->count(),"pageSize"=>"2"]);
    $users = $query->offset($pages->offset)->limit($pages->limit)->all();
    return  $this->render("show",["data"=>$users,"where"=>$where,"pages"=>$pages]);

}
在v层
<?php
use yiihelpersHtml;
use yiiwidgetsActiveForm;
use yiihelpersUrl;
use yiiwidgetsLinkPager;
?>
<?php
$form=ActiveForm::begin([
    "action"=>Url::toRoute(["show"]),
    "method"=>"get",
]);
echo "姓名","&nbsp",Html::input("text","title");
echo "简介","&nbsp",Html::input("text","content");
echo Html::submitButton("提交");
ActiveForm::end();
echo "<br/>";
echo "<br/>";
?>
显示在v层的分页
<?php
echo LinkPager::widget([
    "pagination"=>$pages,
    "nextPageLabel"=>"下一页",
    "firstPageLabel"=>"首页"
])
?>

                                                   方法二(不带分页  是另外一种方法)

public function actionShow(){
    $titles=Yii::$app->request->post("title");
    $content=Yii::$app->request->post("content");
    $where=1;
    if($titles!=""){
        $where.=" and  title like "%$titles%"";
    }
    if($content!=""){
        $where.=" and  content like "%$content%"";
    }
    $sql="select * from votes where $where";
    $users=Yii::$app->db->createCommand($sql)->query();
    return  $this->render("show",["data"=>$users]);
}


声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。