yii2.0增删改查实例讲解

Posted tiandi2050

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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增删改查实例讲解的主要内容,如果未能解决你的问题,请参考以下文章

php增删改查实例第二十一节 - 用户修改功能

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

vue+element增删改查实例

php增删改查实例 第三节 - mysql 建表

php增删改查实例第二十节 - 把用户管理页面集成到main.php中

单表的增删改查实例(图书管理 系统)