yii框架 简单的增、删、改、查(分页)


控制器 TestController.php

<?php
namespace frontend\controllers;


use Yii;
use yii\web\Controller;
use yii\filters\AccessControl;
use yii\db\Query;
use yii\data\Pagination;  
class TestController extends Controller
{
public function actionIndex(){
$request = Yii::$app->request->post();
$db = Yii::$app->db;
if($request){
// 处理数据
unset($request['_csrf']);
// var_dump($request);
// 入库
$res=$db->createCommand()->insert('users', $request)->execute();
if($res){
$this->redirect(['test/show']);
}
}else{
//展示添加页面
return $this->render("index");
}
}
//数据分页展示(原生)
/*
public function actionShow(){
$db = Yii::$app->db;
//每页条数
$length = 3;
// //当前页
// $page = 1;
// $page = isset(Yii::$app->request->get("page"))?Yii::$app->request->get("page"):1;
$page = Yii::$app->request->get("page");
if(empty($page)){
$page = 1;
}
//数据总条数
// echo $page;die;
$count = count($db->createCommand('SELECT * FROM users')->queryAll());
//总页数
$pages = ceil($count/$length);
//上一页
$prev = $page-1>0?$page-1:1;
//下一页
$next = $page+1<=$pages?$page+1:$pages;
//偏移量
$offset = ($page-1)*$length;
// //查询数据库
$users = $db->createCommand("SELECT * FROM users limit $offset,$length")
            ->queryAll();
        // var_dump($users);die;
        return $this->render("show",array("users"=>$users,"prev"=>$prev,"next"=>$next,"pages"=>$pages));


}
*/
//删除
public function actionDel(){
$id = Yii::$app->request->get("id");
$db = Yii::$app->db;
//执行删除
$res = $db->createCommand()->delete('users', "id = $id")->execute();
if($res){
Yii::$app->session->setFlash('success', '删除成功');
$this->redirect(['test/show']);
}else{
Yii::$app->session->setFlash('error', '删除失败');
$this->redirect(['test/show']);
}
}
//修改
public function actionSave(){
$id = Yii::$app->request->get("id");
// $page = Yii::$app->request->get("page");
$db = Yii::$app->db;
$data = Yii::$app->request->post();
//显示修改页面
if($id){
//根据id查询单条数据
$user_one = $db->createCommand("SELECT * FROM users where id =$id")->queryOne();
var_dump($user_one);
return $this->render("save",array("user_one"=>$user_one));
}
//执行修改
if($data){
unset($data['_csrf']);
//修改语句
$res = $db->createCommand()->update('users', $data, "id =".$data['id'])->execute();


if($res){
Yii::$app->session->setFlash('success', '修改成功');
$this->redirect(['test/show']);
}else{
Yii::$app->session->setFlash('error', '修改失败');
$this->redirect(['test/show']);
}
}
}


//数据分页展示(类)
public function actionShow(){


$query=new Query();
   $arr=$query->select('*')->from('users')->all();
   $count=count($arr);
   $pagination = new Pagination(['totalCount' => $count]);
   $pagination->setPageSize(3);
   $data = $query->offset($pagination->offset)->limit($pagination->limit)->all();
   return $this->render('show', ['users' => $data, 'pagination' => $pagination,]);  


}
}

视图层 

index.php(表单)

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<form action="?r=test/index" method="post">
<!-- 验证安全性 -->
<input type="hidden" id="_csrf" name="<?php echo Yii::$app->request->csrfParam;?>" value="<?php echo yii::$app->request->csrfToken?>">
<table>
<tr>
<td>姓名:</td>
<td><input type="text" name='name' value=""></td>
</tr>
<tr>
<td>性别:</td>
<td>
<input type="radio" name='sex' value='男' checked="checked">男
<input type="radio" name='sex' value='女'>女
</td>
</tr>
<tr>
<td>年龄:</td>
<td><input type="text" name='age' value=""></td>
</tr>
<tr>
<td colspan="2">
<input type="submit" value="提交">
</td>
</tr>
</table>
</form>
</body>
</html>

save.php(修改页面)

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<form action="?r=test/save" method="post">
<!-- 验证安全性 -->
<input type="hidden" id="_csrf" name="<?php echo Yii::$app->request->csrfParam;?>" value="<?php echo yii::$app->request->csrfToken?>">
<input type="hidden" name = "id" value="<?php echo $user_one['id']?>">
<table>
<tr>
<td>姓名:</td>
<td><input type="text" name='name' value="<?php echo $user_one['name']?>"></td>
</tr>
<tr>
<td>性别:</td>
<td>
<?php if($user_one['name']=="男"){ ?>
<input type="radio" name='sex' value='男' checked="checked">男
<input type="radio" name='sex' value='女'>女
<?php }else{ ?>
<input type="radio" name='sex' value='男' >男
<input type="radio" name='sex' value='女' checked="checked">女
<?php } ?>
</td>
</tr>
<tr>
<td>年龄:</td>
<td><input type="text" name='age' value="<?php echo $user_one['age']?>"></td>
</tr>
<tr>
<td colspan="2">
<input type="submit" value="提交">
</td>
</tr>
</table>
</form>
</body>
</html>

show.php(展示页面)

<?php use yii\widgets\LinkPager; ?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<table border="1" class='table'>
<th>编号</th>
<th>名字</th>
<th>性别</th>
<th>年龄</th>
<th>操作</th>
<?php foreach($users as $k=>$v){ ?>
<tr>
<td><?php echo $v['id']?></td>
<td><?php echo $v['name']?></td>
<td><?php echo $v['sex']?></td>
<td><?php echo $v['age']?></td>
<td>
<a href="?r=test/save&id=<?php echo $v['id']?>">修改</a>
<a href="?r=test/del&id=<?php echo $v['id']?>">删除</a>
</td>
</tr>
<?php }?>
</table>
<!-- <a href="?r=test/show&page=1">首页</a>
<a href="?r=test/show&page=<?php echo $prev?>">上一页</a>
<a href="?r=test/show&page=<?php echo $next?>">下一页</a>
<a href="?r=test/show&page=<?php echo $pages?>">尾页</a> -->


<?php
        echo LinkPager::widget([
            'pagination' => $pagination,
            'firstPageLabel' => '首页',
            'lastPageLabel' => '末页',
            'prevPageLabel' => '上一页',
            'nextPageLabel' => '下一页',
        ]);
        ?> 






</body>
</html>

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值