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增删改查实例第四节 -自己 DIY 一个数据库管理工具