yii框架中搜索分页Query写法

控制层

use frontend\models\StudUser;
use yii\data\Pagination;
use yii\db\Query;
/**
 * 查询
 *

 */
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 frontend\models;

use Yii;
use yii\db\ActiveRecord;

class StudUser extends ActiveRecord
{

    /**
     * 声明表名
     *
     
     */
     public static function tableName()
     {
         return '{{%stud_user}}';
     }


    /**
     * 验证规则
     *
     */
    public function rules()
    {
        return [
            ['stud_age','integer'],
        ];
    }

}


 
视图层
<?php
use yii\widgets\ActiveForm;
use yii\helpers\Url;
use yii\helpers\Html;
use yii\widgets\LinkPager;
?>

<?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中
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值