yii框架中搜索分页Query写法
控制层
use frontendmodelsStudUser; use yiidataPagination; use yiidbQuery;
/**
* 查询
*
*/
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
{
/**
* 声明表名
*
*/
public static function tableName()
{
return "{{%stud_user}}";
}
/**
* 验证规则
*
*/
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 "性别"," ",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中
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
- 上一篇: iOS开发常见问题
- 下一篇: yii打印sql语句
