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增删改查实例讲解的更多相关文章

  1. yii2.0增删改查

    //关闭csrf public $enableCsrfValidation = false; 1.sql语句 //查询 $db=\Yii::$app->db ->createCommand ...

  2. python链接oracle数据库以及数据库的增删改查实例

    初次使用python链接oracle,所以想记录下我遇到的问题,便于向我这样初次尝试的朋友能够快速的配置好环境进入开发环节. 1.首先,python链接oracle数据库需要配置好环境. 我的相关环境 ...

  3. java:JSP(JSPWeb.xml的配置,动态和静态导入JSP文件,重定项和请求转发,使用JSP实现数据库的增删改查实例)

    1.JSP的配置: <%@ page language="java" import="java.util.*" pageEncoding="UT ...

  4. EF4.0和EF5.0增删改查的写法区别及执行Sql的方法

    EF4.0和EF5.0增删改查的写法区别 public T AddEntity(T entity) { //EF4.0的写法 添加实体 //db.CreateObjectSet<T>(). ...

  5. MVC ---- EF4.0和EF5.0增删改查的写法区别及执行Sql的方法

    EF4.0和EF5.0增删改查的写法区别 public T AddEntity(T entity) { //EF4.0的写法 添加实体 //db.CreateObjectSet<T>(). ...

  6. python全栈开发中级班全程笔记(第二模块、第三章)(员工信息增删改查作业讲解)

    python全栈开发中级班全程笔记 第三章:员工信息增删改查作业代码 作业要求: 员工增删改查表用代码实现一个简单的员工信息增删改查表需求: 1.支持模糊查询,(1.find name ,age fo ...

  7. 【php增删改查实例】第四节 -自己 DIY 一个数据库管理工具

    本节介绍如何自己DIY一个数据库管理工具,可以在页面输入sql 进行简单的增删改查操作. 首先,找到xampp的安装目录,打开htdocs: 新建一个php文件,名称为 mysqladmin.php ...

  8. YII2生成增删改查

    下载完成后在basic/db.php配置数据库参数. 1.配置虚拟主机后进入YII入口文件 index.php 进行get传值 ?r=gii ,进入创建界面 2.点击 Model Generator下 ...

  9. 百度鹰眼Java接口调用增删改查实例

    因感觉百度鹰眼的使用场景比较符合实际业务,于是对百度鹰眼做了简单功能调试.刚开始使用springframework封装的RestTemplate,但是测试提示ak参数不存在.后又试了几种方法,均提示a ...

随机推荐

  1. Mysql 链接数据库时区错误

    错误信息:Error querying database.  Cause: java.sql.SQLException: The server time zone value 'Öйú±ê׼ʱ¼ ...

  2. apktool介绍

    apktool可以反编译出app的资源文件,apktool工具的下载路径:https://ibotpeaches.github.io/Apktool/ 下载后获取到一个jar文件,可以通过如下命令进行 ...

  3. RESTful三理解

    目录 目录 前言 Web应用的会话状态 Cookie 资源的表现形式 HATEOAS RESTful 资源 URI 前言 最近看了一篇很赞的RESTful博客,传送门:http://www.cnblo ...

  4. DataFrame API应用案例

    DataFrame API 1.collect与collectAsList . collect返回一个数组,包含DataFrame中的全部Rows collectAsList返回一个Java List ...

  5. Win7 VSCode 离线安装Rust语言及环境配置

    前置依赖 装过Visual Studio或Visual Studio Build Tool 2015 下载Rust离线安装包 https://forge.rust-lang.org/other-ins ...

  6. 有趣的linux指令

    1.cmatrix sudo apt-get update sudo apt-get install cmatrix 2.asciiquarium wget http://search.cpan.or ...

  7. Linux libOpenThreads库链接冲突错误

    最近在linux 上安装了3.7.0版本的OpenSceneGraph,而在安装之前没有完全卸载之前安装的3.6.3版本,导致在编译程序链接时出现库引用冲突,在便以后出现以下警告信息: /usr/bi ...

  8. [功能集锦] 002 - mysql查询数据库字典+导出+样式一键整合至excel

    写在前面: 因为工作时候经常遇到半路接手项目的情况,由于年代久远,数据库字典这块经常缺失.故写此篇,以便复用,也希望对大家有点帮助. 随笔内容不高级,如有不妥,不吝指正. 20190730-加了一些简 ...

  9. CF1105C Ayoub and Lost Array ——动态规划

    CF1105C Ayoub and Lost Array 题意:一个整数数组,满足: 1. 长度为n 2. 所有元素都在[l, r]范围内 3. 所有元素的和能被3整除给出n, l, r (1 ≤ n ...

  10. Java 小技巧和在Java避免NullPonintException的最佳方法(翻译)

                前几天就g+里面看到有人引用这篇博文.看了一下.受益颇多. 所以翻译过来,希望和大家一起学习.本人英语水平有限,假设有错,请大家指正. 原文地址(须要翻墙):http://ja ...