您的位置:首页 > 编程语言 > PHP开发

yii框架中搜索分页Query写法

2016-12-19 09:47 295 查看
控制层

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 '性别'," ",Html::input('text','sex',$where['sex']);

echo '年龄'," ",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中
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: