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(); ?>

五.运行结果如下:

时间: 2024-10-09 11:39:50

yii2.0增删改查实例讲解的相关文章

yii2.0增删改查

[php] view plain copy //关闭csrf public $enableCsrfValidation = false; [php] view plain copy 1.sql语句 //查询 $db=\Yii::$app->db ->createCommand("select * from 表名") ->queryAll(); //修改 $db=\Yii::$app->db ->createCommand()->update('表名'

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

1.JSP的配置: <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme() + "://" + request.getServerName() + ":&qu

Mybatis增删改查实例

Mybatis增删改查实例 编写一个简单的mybatis进行插入数据的实例 1 数据库建表  其中建表dob=Date of Birth 的意思 create table students (stud_id number primary key, name varchar2(20), email varchar2(20), dob date ); Oracle数据库中出现表已创建,则表示创建成功,如果出现名称已被使用,则可在建表之前进行删除操作:drop table students;或者进行级

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

EF4.0和EF5.0增删改查的写法区别 public T AddEntity(T entity) { //EF4.0的写法 添加实体 //db.CreateObjectSet<T>().AddObject(entity); //EF5.0的写法 db.Entry<T>(entity).State = EntityState.Added; //下面的写法统一 db.SaveChanges(); return entity; } public bool UpdateEntity(T

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

EF4.0和EF5.0增删改查的写法区别 (原文) public T AddEntity(T entity) { //EF4.0的写法 添加实体 //db.CreateObjectSet<T>().AddObject(entity); //EF5.0的写法 db.Entry<T>(entity).State = EntityState.Added; //下面的写法统一 db.SaveChanges(); return entity; } public bool UpdateEnti

BootStrap DataTables Spring MVC简单增删改查实例

1 <!DOCTYPE html> 2 <%@ page contentType="text/html;charset=gbk" language="java" %> 3 <%@page isELIgnored="false" %> 4 <meta name="viewport" content="width=device-width, initial-scale=1&quo

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

本节介绍如何自己DIY一个数据库管理工具,可以在页面输入sql 进行简单的增删改查操作. 首先,找到xampp的安装目录,打开htdocs: 新建一个php文件,名称为 mysqladmin.php 1.编写php服务器代码 1.1 写上php标签 首先,还是在这个页面,要写php代码,就需要有一个php标签: 我们的php代码要写在这个标签内. 1.2 数据库连接操作 xampp安装的mysql默认没有密码,不写就行. 1.3 获取form表单传过来的sql语句 1.4 用mysql_quer

VUE2.0增删改查附编辑添加model(弹框)组件共用

Vue实战篇(增删改查附编辑添加model(弹框)组件共用) 前言 最近一直在学习Vue,发现一份crud不错的源码 预览链接 https://taylorchen709.github.io/vue-admin/#/login 自己下载下来后仔细研究了起来,发现编辑和增加写了两个弹框,我觉得这不符合vue的组件原则,于是自己把编辑和添加改成共用的 因为也是纯粹的写写前端页面,所以数据方面用的是mock.js,真实的模拟请求. 这个项目用到的 技术栈: vue + webpack + vuex +

关于利用PHP访问MySql数据库的逻辑操作以及增删改查实例操作

PHP访问MySql数据库 <?php //造连接对象$db = new MySQLi("localhost","root","","0710_test"); //写SQL语句$sql = "select * from student";//检测连接数据库是否成功,失败返回"连接失败",并退出程序 if(mysqli_connect_error()){    die("连