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

yii带条件搜索分页

创建时间:2016-10-13 投稿人: 浏览次数:168

控制层

use frontendmodelsStudUser;
use yiidataPagination;
use yiidbQuery;
/**
 * 查询
 *
 * @author YING
 * @param void
 * @return void
 */
public function actionSearch()
{

    //接值
    $where=Yii::$app->request->get();

    //实例化query
    $query=new Query();

    $query->from("stud_user");

    //判断
    if(isset($where["sex"])&&$where["sex"]!=""){

        //判断
        if($where["sex"]==""){
           $query->andWhere(["stud_sex"=>0]);
        }
        if($where["sex"]==""){
            $query->andWhere(["stud_sex"=>1]);
        }

    }else{

  $where["sex"]="";

}


    //年龄
    if(isset($where["age"])&&$where["age"]!=""){
          $query->andWhere([">","stud_age",$where["age"]]);

    }else{
$where["age"]="";

}


    //分页
    $pagination = new Pagination(["totalCount" => $query->count()]);

    //条数
    $pagination->setPageSize("3");

    //条件
    $query->offset($pagination->offset)->limit($pagination->limit);

    //执行
    $userInfo=$query->all();

    //print_r($userInfo);die;

    return $this->render("search",["userInfo"=>$userInfo,"page"=>$pagination,"where"=>$where]);
}



模型层
<?php
namespace frontendmodels;

use Yii;
use yiidbActiveRecord;

class StudUser extends ActiveRecord
{

    /**
     * 声明表名
     *
     * @author YING
     * @param void
     * @return void
     */
     public static function tableName()
     {
         return "{{%stud_user}}";
     }


    /**
     * 验证规则
     *
     * @author YING
     * @param void
     * @return void
     */
    public function rules()
    {
        return [
            ["stud_age","integer"],
        ];
    }

}


 
视图层

<?php
use yiiwidgetsActiveForm;
use yiihelpersUrl;
use yiihelpersHtml;
use yiiwidgetsLinkPager;
?>

<?php
$form=ActiveForm::begin([
    "action"=>Url::toRoute(["admin/search"]),
    "method"=>"get",
]);

echo "性别","&nbsp",Html::input("text","sex",$where["sex"]);

echo "年龄","&nbsp",Html::input("text","age",$where["age"]);

echo Html::submitButton("提交");



ActiveForm::end();
?>

<table class="table">
<tr>
    <td>序号</td>
    <td>姓名</td>
    <td>年龄</td>
</tr>
    <?php  foreach($userInfo as $val):?>
        <tr>
            <td><?= $val["stud_id"]?></td>
            <td><?= $val["stud_name"]?></td>
            <td><?= $val["stud_age"]?></td>
        </tr>
    <?php endforeach;?>
</table>

<?php
echo LinkPager::widget([
    "pagination" => $page,
    "nextPageLabel"=>"下一页"
 ]);?>



分页的样式在

LinkPager.php中

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