Yii2增删改查
Controller

<?php
namespace frontend\controllers;
use frontend\models\User;
use yii\data\Pagination;
class UserController extends \yii\web\Controller
{
//添加的表单页面展示
public function actionIndex()
{
$model = new User();
return $this->render('index',['model'=>$model]);
}
//实现入库
public function actionCreate(){
$model = new User();
$model->status = 1;
$model->create_time = time();
if($model->load(\Yii::$app->request->post()) && $model->validate()){
//密码加密
$model->pwd = $model->setPassword(\Yii::$app->request->post('User[pwd]'));
if($model->save()){
// return '保存成功';
return $this->redirect(['user/lists']);
}else{
// \Yii::$app->getSession()->setFlash('error', '保存失败');
return '保存失败';
}
}else{
return 2;
}
}
//实现列表展示
public function actionLists(){
//创建一个DB来获取所有的用户
$query = User::find();
//得到用户的总数
$count = $query->count();
// 使用总数来创建一个分页对象
$pagination = new Pagination(['totalCount' => $count,'pageSize' => '2']);
//实现分页数据
$users = $query->offset($pagination->offset)
->limit($pagination->limit)
->all();
return $this->render('lists',['data'=>$users,'pagination' => $pagination]);
}
//根据id查询当个信息
public function actionDefault(){
$id = \Yii::$app->request->get("id");
$data = User::findOne($id);
return $this->render('default',['data'=>$data]);
}
//实现根据id进行修改
public function actionUpd(){
//接收参数
$id = \Yii::$app->request->post("id");
$model = User::findOne($id);
if($model->load(\Yii::$app->request->post()) && $model->save()){
return $this->redirect(['user/lists']);
}else{
return '修改失败';
}
}
//实现删除
public function actionDel(){
$id = \Yii::$app->request->get("id");
$model = User::findOne($id);
if($model->delete()){
$this->redirect(['user/lists']);
}else{
return '删除失败';
}
}
}

Model:

<?php
namespace frontend\models;
use Yii;
/**
* This is the model class for table "user".
*
* @property int $id 自增id
* @property string $username 用户名
* @property string $pwd 密码
* @property string $nickname
* @property int $status
* @property int $create_time
*/
class User extends \yii\db\ActiveRecord
{
/**
* {@inheritdoc}
*/
public static function tableName()
{
return 'user';
}
/**
* {@inheritdoc}
*/
public function rules()
{
return [
[['username', 'pwd', 'nickname', 'status', 'create_time'], 'required'],
[['status', 'create_time'], 'integer'],
[['username', 'nickname'], 'string', 'max' => 50],
[['pwd'], 'string', 'max' => 255],
];
}
/**
* {@inheritdoc}
*/
public function attributeLabels()
{
return [
'id' => '自增id',
'username' => '账号',
'pwd' => '密码',
'nickname' => '昵称',
'status' => '状态',
'create_time' => '创建时间',
];
}
//密码加密
public function setPassword($password){
return Yii::$app->getSecurity()->generatePasswordHash($password);
}
}

view文件夹下的default.php页面:

<?php
use yii\helpers\Html;
use yii\widgets\ActiveForm;
use yii\helpers\Url;
?>
<?php $form = ActiveForm::begin([
'action'=>Url::to(['user/upd']),
'method'=>'post'
]) ?>
<?= $form->field($data, 'username') ?>
<?= $form->field($data,'nickname') ?>
<?= $form->field($data,'status')->radioList([1=>'启用',2=>'禁用']) ?>
<?= Html::hiddenInput("id",$data->id) ?>
<?= Html::submitButton('修改', ['class' => 'btn btn-primary']) ?>
<?php ActiveForm::end() ?>

view文件夹下的index.php页面:

<?php
use yii\helpers\Html;
use yii\widgets\ActiveForm;
use yii\helpers\Url;
?>
<?php $form = ActiveForm::begin([
'action'=>Url::to(['user/create']),
'method'=>'post'
]) ?>
<?= $form->field($model, 'username') ?>
<?= $form->field($model, 'pwd')->passwordInput() ?>
<?= $form->field($model,'nickname') ?>
<?= Html::submitButton('添加', ['class' => 'btn btn-primary']) ?>
<?php ActiveForm::end() ?>

view文件夹下的lists.php页面:

<?php
use yii\helpers\Html;
use yii\widgets\LinkPager;
use yii\helpers\Url;
?>
<table border="1">
<tr>
<th>ID</th>
<th>账号</th>
<th>密码</th>
<th>昵称</th>
<th>状态</th>
<th>创建时间</th>
<th>操作</th>
</tr>
<?php foreach ($data as $k => $v): ?>
<tr>
<td><?= Html::encode($v['id']) ?></td>
<td><?= Html::encode($v['username']) ?></td>
<td><?= Html::encode($v['pwd']) ?></td>
<td><?= Html::encode($v['nickname']) ?></td>
<td><?= Html::encode($v['status']==1 ? '启用' : '禁用') ?></td>
<td><?= Html::encode(date("Y-m-d H:i:s",$v['create_time'])) ?></td>
<td>
<a href="<?php echo Url::to(['user/default','id'=>$v['id']]) ?>">修改</a>
<a href="<?php echo Url::to(['user/del','id'=>$v['id']]) ?>">删除</a>
</td>
</tr>
<?php endforeach; ?>
</table>
<?= LinkPager::widget(['pagination' => $pagination]) ?>

数据库:

CREATE TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增id', `username` varchar(50) NOT NULL COMMENT '用户名', `pwd` varchar(255) NOT NULL COMMENT '密码', `nickname` varchar(50) NOT NULL, `status` tinyint(4) NOT NULL, `create_time` int(11) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=58 DEFAULT CHARSET=utf8;

Yii2增删改查的更多相关文章
- yii2增删改查及AR的理解
yii2增删改查 // 返回 id 为 1 的客户 $customer = Customer::findOne(1); // 返回 id 为 1 且状态为 *active* 的客户 $customer ...
- yii2 增删改查
自己总结的yii2 advanced 版本的简单的增删改查,希望对大家有所帮助 1.gii生成的actionCreate()方法中 获取插入语句的id $id = $model->attribu ...
- 原生YII2 增删改查的一些操作(非ActiveRecord)
1.添加数据 如下,使用insert方法:t_admin_user为数据表名..其他的是属性.. $num = Yii::$app->db->createCommand()->ins ...
- yii2增删改查操作
https://www.yiichina.com/tutorial/996 https://www.yiichina.com/tutorial/834 一.新增 使用model::save()操作进行 ...
- [YII2] 增删改查2
一.新增 使用model::save()操作进行新增数据 $user= new User; $user->username =$username; $user->password =$pa ...
- Yii2.0高级框架数据库增删改查的一些操作(转)
yii2.0框架是PHP开发的一个比较高效率的框架,集合了作者的大量心血,下面通过用户为例给大家详解yii2.0高级框架数据库增删改查的一些操作 --------------------------- ...
- Yii2.0高级框架数据库增删改查的一些操作
yii2.0框架是PHP开发的一个比较高效率的框架,集合了作者的大量心血,下面通过用户为例给大家详解yii2.0高级框架数据库增删改查的一些操作 --------------------------- ...
- YII2.0 数据库增删改查
/*==================== dkhBaseModel 数据库增删改查方法 start ================================*/ //新增一条数据 publ ...
- yii2.0增删改查实例讲解
yii2.0增删改查实例讲解一.创建数据库文件. 创建表 CREATE TABLE `resource` ( `id` int(10) NOT NULL AUTO_INCREMENT, `textur ...
随机推荐
- zombodb 几个方便的_cat api
zombodb 暴露所有es _cat/ api 为视图,我们可以通过视图方便的查询es 的信息,默认在zdb的schema 中 包含的视图 几个方便的view 查看索引统计信息zdb.index_s ...
- 在xcode 上调试c程序
打开xcode 选择 Create a new Xcode project 选择Command Line Tool 给你的项目起个名,选择c语言 点击next 选择存储位置,就会制动生成一个项目,在项 ...
- varchar字数
每行数据最多65000字节 长度是当前字符集的字符长度,而不是字节长度! 参考:https://www.cnblogs.com/billyxp/p/3548540.html 经常变化的字段用varch ...
- Makefile知识点总结
1.=,:=,+=区别 = 是最基本的赋值 := 是覆盖之前的值 ?= 是如果没有被赋值过就赋予等号后面的值 += 是添加等号后面的值 .“=” make会将整个makefile展开后,再决定变量的值 ...
- Scrapy学习篇(十一)之设置随机User-Agent
大多数情况下,网站都会根据我们的请求头信息来区分你是不是一个爬虫程序,如果一旦识别出这是一个爬虫程序,很容易就会拒绝我们的请求,因此我们需要给我们的爬虫手动添加请求头信息,来模拟浏览器的行为,但是当我 ...
- c# 抽象类 抽象函数 接口
抽象类与抽象方法: 被abstract关键字修饰的类叫做抽象类 被abstract关键字修饰的方法叫做抽象方法 1.抽象方法必须放在抽象类中 2.抽象方法不可以实现代码,用空语句替代 3.抽象方法可以 ...
- .NET自动化测试工具:Selenium Grid
在生产环境,QA会同时跑几十个上百个的test case.如果用单机串行的话,是一件非常耗时的事情,估计比手点快不了多少.使用并行方案的话,有两种方法,一个是自己写并行框架,一个是用现成的Seleni ...
- python网页爬虫开发之四-串行爬虫代码示例
实现功能:代理.限速.深度.反爬 import re import queue import urllib.parse import urllib.robotparser import time fr ...
- 八(第一篇)、主体结构元素——article元素、section元素
article元素 article元素代表文档.页面或应用程序中独立的.完整的.可以独自被外部引用的内容. 他可以是一篇博客或者报刊中的文章,一篇轮胎帖子.一段用户评论或独立的插件,或其他任何独立的插 ...
- vim相关
保存和传递宏 1 先建立一个宏.如上 2 在任意一个文件的空白位置normal状态下,命令"ap 即可以把宏的内容显示出来.比如说我的宏是: "ohello th id<80 ...