yii2.0增删改查实例讲解
yii2.0增删改查实例讲解
一.创建数据库文件.
创建表
CREATE TABLE `resource` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`texture` varchar(50) NOT NULL COMMENT '材质',
`mark` varchar(50) NOT NULL COMMENT '牌号',
`manufacturers` varchar(100) NOT NULL COMMENT '厂家',
`price` int(11) NOT NULL COMMENT '价格',
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=10 DEFAULT CHARSET=utf8;
INSERT INTO `resource` VALUES ('1', 'PP', '300H', '中沙石化', '8300');
INSERT INTO `resource` VALUES ('2', 'LDPE', 'LD605', '燕山石化', '9850');
INSERT INTO `resource` VALUES ('3', 'ABS', 'D-190 ', '镇江奇美', '11300');
INSERT INTO `resource` VALUES ('4', 'ABS', 'D-180 ', '镇江奇美', '11500');
INSERT INTO `resource` VALUES ('5', 'ABS', 'D-2400 ', '镇江奇美', '17600');
INSERT INTO `resource` VALUES ('6', 'YH', 'YH100', '测试', '199466');
INSERT INTO `resource` VALUES ('7', 'YH', 'YH200', '测试', '56256');
INSERT INTO `resource` VALUES ('8', 'QW', 'QW-21', '压紧', '19865');
INSERT INTO `resource` VALUES ('9', 'ZX', 'ZX-82', '水果', '98632');
INSERT INTO `resource` VALUES ('10', 'OP', 'OP98', '叶城', '38941');
二.定义控制器controller
namespace app\controllers; use Yii;
use yii\web\Controller;
use yii\data\Pagination;
use app\models\Resources; class ResourcesController extends Controller
{
/**
* 数据列表
*/
public function actionIndex($id = '')
{
$query = Resources::find();
$pages = new Pagination([
'defaultPageSize' => '4',
'totalCount' => $query->count(),
]); $model = $query->orderBy('id DESC')
->offset($pages->offset)
->limit($pages->limit)
->all(); return $this->render('index', [
'model' => $model,
'pages' => $pages,
'id' => $id,
]);
} /**
* 添加数据
*/
public function actionAdd($id = '')
{
if($id){
$model = Resources::findOne($id);
}else{
$model = new Resources();
}
if($model->load(Yii::$app->request->post()) && $model->validate()){
$model->save();
return $this->redirect(array('resources/index'));
}
return $this->render('add', [
'model' => $model,
'id' => $id,
]);
} /**
* 更新数据
*/
public function actionUpdate($id)
{
return $this->redirect(array('resources/add','id' => $id));
} /**
* 删除数据
*/
public function actionDelete($id)
{
Resources::findOne($id)->delete();
return $this->redirect(array('resources/index'));
}
}
三.定义model
namespace app\models; use Yii; /**
* This is the model class for table "resource".
*
* @property integer $id
* @property string $texture
* @property string $mark
* @property string $manufacturers
* @property integer $price
*/
class Resources extends \yii\db\ActiveRecord
{
/**
* @inheritdoc
*/
public static function tableName()
{
return 'resource';
} /**
* @inheritdoc
*/
public function rules()
{
return [
[['texture', 'mark', 'manufacturers', 'price'], 'required'],
[['price'], 'integer'],
[['texture', 'mark'], 'string', 'max' => 50],
[['manufacturers'], 'string', 'max' => 100],
];
} /**
* @inheritdoc
*/
public function attributeLabels()
{
return [
'id' => "ID",
'texture' =>"材质",
'mark' => Yii::t('app', '牌号'),
'manufacturers' => Yii::t('app', '厂家'),
'price' => Yii::t('app', '价格'),
];
}
}
四.定义视图view
1.index.php
<?php
use yii\helpers\Html;
use yii\widgets\LinkPager;
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>资源列表</title>
<style type="text/css">
.list-head{margin-bottom:10px;overflow:hidden;}
.list-head strong{padding:6px 0;font-size:16px;} .list-table{width:100%;}
.list-table thead{font-weight:bold;}
.list-table td{line-height:30px;text-align:center;border:1px solid #eee;} .fl{float:left;}
.fr{float:right;}
</style>
</head>
<body>
<?= $id ?>
<div class="list-head">
<strong class="fl">资源列表</strong>
<a href="index.php?r=resources/add" class="btn btn-primary fr">添加</a>
</div>
<table class="list-table">
<thead>
<tr>
<td>ID</td>
<td>材质</td>
<td>牌号</td>
<td>厂家</td>
<td>价格</td>
<td>操作</td>
</tr>
</thead>
<tbody>
<?php foreach($model as $resource): ?>
<tr>
<td><?= Html::encode($resource->id) ?></td>
<td><?= Html::encode($resource->texture) ?></td>
<td><?= Html::encode($resource->mark) ?></td>
<td><?= Html::encode($resource->manufacturers) ?></td>
<td><?= Html::encode($resource->price) ?></td>
<td>
<a href="index.php?r=resources/update&id=<?= Html::encode($resource->id) ?>">编辑</a>
<a href="index.php?r=resources/delete&id=<?= Html::encode($resource->id) ?>" onclick="if(confirm('确定删除该条数据?')==false)return false;">删除</a>
</td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
<?= LinkPager::widget(['pagination' => $pages]) ?>
</body>
</html>
2.add.php
<?php
use yii\helpers\Html;
use yii\widgets\ActiveForm;
?> <?php $form = ActiveForm::begin(); ?>
<?php if($id): ?>
<?= $form->field($model, 'id')->textInput(['value' => $id, 'disabled' => 'disabled']) ?>
<?php endif; ?>
<?= $form->field($model, 'texture') ?>
<?= $form->field($model, 'mark') ?>
<?= $form->field($model, 'manufacturers') ?>
<?= $form->field($model, 'price') ?>
<div class="form-group">
<?php if($id): ?>
<?= Html::submitButton('修改', ['class' => 'btn btn-primary']) ?>
<?php else:?>
<?= Html::submitButton('添加', ['class' => 'btn btn-primary']) ?>
<?php endif; ?>
</div>
<?php ActiveForm::end(); ?>
五.运行结果如下:

yii2.0增删改查实例讲解的更多相关文章
- yii2.0增删改查
//关闭csrf public $enableCsrfValidation = false; 1.sql语句 //查询 $db=\Yii::$app->db ->createCommand ...
- python链接oracle数据库以及数据库的增删改查实例
初次使用python链接oracle,所以想记录下我遇到的问题,便于向我这样初次尝试的朋友能够快速的配置好环境进入开发环节. 1.首先,python链接oracle数据库需要配置好环境. 我的相关环境 ...
- java:JSP(JSPWeb.xml的配置,动态和静态导入JSP文件,重定项和请求转发,使用JSP实现数据库的增删改查实例)
1.JSP的配置: <%@ page language="java" import="java.util.*" pageEncoding="UT ...
- EF4.0和EF5.0增删改查的写法区别及执行Sql的方法
EF4.0和EF5.0增删改查的写法区别 public T AddEntity(T entity) { //EF4.0的写法 添加实体 //db.CreateObjectSet<T>(). ...
- MVC ---- EF4.0和EF5.0增删改查的写法区别及执行Sql的方法
EF4.0和EF5.0增删改查的写法区别 public T AddEntity(T entity) { //EF4.0的写法 添加实体 //db.CreateObjectSet<T>(). ...
- python全栈开发中级班全程笔记(第二模块、第三章)(员工信息增删改查作业讲解)
python全栈开发中级班全程笔记 第三章:员工信息增删改查作业代码 作业要求: 员工增删改查表用代码实现一个简单的员工信息增删改查表需求: 1.支持模糊查询,(1.find name ,age fo ...
- 【php增删改查实例】第四节 -自己 DIY 一个数据库管理工具
本节介绍如何自己DIY一个数据库管理工具,可以在页面输入sql 进行简单的增删改查操作. 首先,找到xampp的安装目录,打开htdocs: 新建一个php文件,名称为 mysqladmin.php ...
- YII2生成增删改查
下载完成后在basic/db.php配置数据库参数. 1.配置虚拟主机后进入YII入口文件 index.php 进行get传值 ?r=gii ,进入创建界面 2.点击 Model Generator下 ...
- 百度鹰眼Java接口调用增删改查实例
因感觉百度鹰眼的使用场景比较符合实际业务,于是对百度鹰眼做了简单功能调试.刚开始使用springframework封装的RestTemplate,但是测试提示ak参数不存在.后又试了几种方法,均提示a ...
随机推荐
- loj#2838 「JOISC 2018 Day 3」比太郎的聚会
分析 预处理每个点的前根号小的距离 对于每次询问删除点小于根号则已经处理好 否则直接暴力dp即可 代码 #include<bits/stdc++.h> using namespace st ...
- mysql错误:1093-You can’t specify target table for update in FROM clause的解决方法
update语句中包含的子查询的表和update的表为同一张表时,报错:1093-You can’t specify target table for update in FROM clause my ...
- vscode左侧文件不同颜色标识含义
代码里的左侧颜色标识: 红色,未加入版本控制; (刚clone到本地)绿色,已经加入版本控制暂未提交; (新增部分)蓝色,加入版本控制,已提交,有改动: (修改部分)白色,加入版本控制,已提交,无改动 ...
- Vagrant 入门 - 项目设置
原文地址 配置 Vagrant 项目的第一步是创建 Vagrantfile 文件.Vagrantfile 文件的目的有两个: 设置项目的根目录.Vagrant 中的许多配置选项是相对于这个根目录的. ...
- Go-Mutex互斥量
先来看一段go1.12.5中Mutex的源码: // Copyright 2009 The Go Authors. All rights reserved. // Use of this source ...
- CentOS防火墙命令集
1. firewalld的基本使用 启动防火墙: systemctl start firewalld 防火墙状态: systemctl status firewalld 停止防火墙: systemct ...
- Vulhub搭建
Vulhub是一个比较全面的漏洞集合,收集了近年来许多的重要漏洞,以开源的形式呈现,以docker的形式进行环境配置,提供了更简单的漏洞复现,只需要简单的命令即可实现漏洞复现. 官网 https:/ ...
- mysql中插入中文时显示乱码
在插入mysql的时候参数是中文的时候显示的是???乱码,这个是由于没有配置字符编码引起的 只要在SqlMapconfig.xml文件中加上<property name="url&qu ...
- opencv2——图像上的算术运算4
1.图像算术运算 参数含义: src1:第一张图像 src2:第二张图像 dst:destination,目标图像,需要提前分配空间,可省略 mask:掩膜 scale:缩放比,常量 dtype:数据 ...
- 牛客练习赛27-----C.水图(DFS求最长路径)
传送门 来源:牛客网题目描述:小w不会离散数学,所以她van的图论游戏是送分的小w有一张n个点n-1条边的无向联通图,每个点编号为1~n,每条边都有一个长度小w现在在点x上她想知道从点x出发经过每个点 ...