文档章节

YII模型的增删改查

别人说我名字很长
 别人说我名字很长
发布于 2013/12/21 09:27
字数 1082
阅读 112
收藏 2
点赞 0
评论 0


新建模型 ,模型名为表名
1、建模型 /cms/protected/models/test.php //test是我的表名

<?php
/*
 * test表模型管理,一张表对应一个模型,表中的字段为模型对象的属性
 */
class test extends CActiveRecord{
    //Model静态方法为必须有的方法
    public static function model($className=__CLASS__){
          return parent::model($className);
    }
    //tableName方法也是必须有的方法
    public function tableName(){
        return '{{test}}';
    }
    //attributeLabels方法在显示 echo $form->labelEx($model,'pingpai'); 时需要
    public function attributeLabels(){
        return array(
            'title' =>'商品名称',
            'type'=>'商品类型',
            'pingpai'=>'品牌',
            'jiage'=>'价格',
            'picname'=>'产品图片',
            'content'=>'详细描述'
        );        
    } 
    //验证
    function rules() {
        return array(
            array('title','required','message'=>'标题必填'),
            array('typeid','required','message'=>'必须选择栏目'),            
        );
    }   
}
?>



2、增加  (首先建立class  Manager Controller extends Controller控制器的add方法)
public function actionAdd(){
        //首页实例化这个模型
        $model = new test();
        //如果表单提交了,就进行更新
        if($_POST['test']){
            foreach($_POST['test'] as $k=>$v){
                $model->$k = $v;//将post过来的数据赋值给模型字段
            }
            $model->attributes=$_POST['test'];//使用这个也可以
            //保存信息
            if($model->save()){
                //增加成功后跳转
                $this -> redirect(array('show'));
            }            
        }
        //显示增加的表单,将$model传进去
        $this->renderPartial('add',array('model'=>$model));
    }



2—1、增加的视图 /cms/protected/modules/houtai/manager/add.php
<?php $form = $this->beginWidget('CActiveForm');?><!-- 表单form开始 -->
<table border="1" width="100%" class="table_a">
    <tr>
        <td><?php echo $form->labelEx($model,'title'); ?><!-- 字段的显示名称 --></td>
        <td>
            <?php echo $form->textfield($model,'title');?><!-- 字段的input框 -->
        </td>
    </tr>
    <tr>
        <td><?php echo $form->labelEx($model,'content');?><!-- 字段的显示名称 --></td>
        <td>
            <?php echo $form->textArea($model,'content');?><!-- 字段的area框 -->
        </td>
    </tr>
           
    <tr>
        <td colspan="2" align="center">
            <input type="submit" value="添加">
        </td>
    </tr>  
</table>
<?php $this->endwidget();?><!-- 表单form结束 -->


3、修改   (首先建立class  Manager Controller extends Controller控制器的update方法)
public function actionUpdate($id){//id为接收修改的ID
        $model = Test::Model();//实例化模型,修改的模型必须这样实例化
        $test_info= $model->findByPk($id);//查询出要修改的这一列
        //如果提交了表单
        if($_POST['test']){
            foreach($_POST['test'] as $k=>$v){
                $test_info->$k = $v;//将post过来的数据赋值给模型字段
            }
            if($test_info->save()){//保存信息
                $this->redirect(array('show'));//跳转
            }            
        }
        //将模型对象传入到update视图中
        $this->renderPartial('update',array("test_info"=>$test_info));        
    }



3_1 修改的视图  增加的视图 /cms/protected/modules/houtai/manager/update.php
<?php $form = $this->beginWidget('CActiveForm');?><!-- 表单form开始 -->
<table border="1" width="100%" class="table_a">
    <tr>
        <td><?php echo $form->labelEx($model,'title'); ?><!-- 字段的显示名称 --></td>
        <td>
            <?php echo $form->textfield($model,'title');?><!-- 字段的input框 -->
        </td>
    </tr>
    <tr>
        <td><?php echo $form->labelEx($model,'content');?><!-- 字段的显示名称 --></td>
        <td>
            <?php echo $form->textArea($model,'content');?><!-- 字段的area框 -->
        </td>
    </tr>
          
    <tr>
        <td colspan="2" align="center">
            <input type="submit" value="修改">
        </td>
    </tr>  
</table>
<?php $this->endwidget();?><!-- 表单form结束 -->



4、删除  (首先建立class  Manager Controller extends Controller控制器的delete方法)
public function actionDelete($id){
        //根据get过来的id获得模型对象,通过对象的delete方法删除数据
        $model = Test::Model();//获得模型对象
        $test_info = $model->findByPk($id);//通过对象的findByPk方法获得这一行数据
        if($test_info->delete()){//用delete方法删除
            $this->redirect(array('show'));
        }
    }



5、分页显示    (首先建立class  Manager Controller extends Controller控制器的show方法)
public function actionshow(){
        $model = Test::Model();//查、改、删都用这个实例化模型方式,增加必须用new Test();
        $con = $model->count();//获得总记录数
        $per = 5;//每页显示5条记录
        $page = new pagination($con,$per);//这里的分页类pagination是调用的/cms/protected/components/pagination.php
        $sql = "select * from {{test}} $page->limit";//拼接SQL语句
        $test_info = $model->findAllBySql($sql);//通过SQL语句获得数据
        $this->renderPartial('show',array('test_info'=>$test_info,'fpage'=>$page->fpage()));//传递变量到视图
    }



5-2 分页的视图  /cms/protected/modules/houtai/views/manager/show.php
<table class="table_a" border="1" width="100%">
                <tbody><tr style="font-weight: bold;">
                        <td>序号</td>
                        <td>商品名称</td>
                        <td>库存</td>
                        <td>价格</td>
                        <td>图片</td>
                        <td>缩略图</td>
                        <td>品牌</td>
                        <td>创建时间</td>
                        <td align="center">操作</td>
                    </tr>
                    <?php
                    foreach($test_info as $k=>$v){
                    ?>
                    <tr id="product1">
                        <td><?php echo $v->id;?></td>
                        <td><a href="#"><?php echo $v->title;?></a></td>
                        <td>100</td>
                        <td><?php echo $v->jiage;?></td>
                        <td><img src="<?php echo HOUTAI_IMG_URL;?>20121018-174034-58977.jpg" height="60" width="60"></td>
                        <td><img src="<?php echo HOUTAI_IMG_URL;?>20121018-174034-97960.jpg" height="40" width="40"></td>
                        <td>苹果apple</td>
                        <td>2012-10-18 17:40:34</td>
                        <td><a href="index.php?r=houtai/manager/update&id=<?php echo $v->id;?>">修改</a></td>
                        <td><a href="index.php?r=houtai/manager/delete&id=<?php echo $v->id;?>" onclick="return confirm('确定将此记录删除?')">删除</a></td>
                    </tr>
                    <?php }?>
                        
                    <tr>
                        <td colspan="20" style="text-align: center;">
                            <?php echo $fpage;?>
                        </td>
                    </tr>
                </tbody>
            </table>






© 著作权归作者所有

共有 人打赏支持
别人说我名字很长
粉丝 55
博文 243
码字总数 97391
作品 0
济南
程序员
通用管理后台--YiiBoot

YiiBoot使用Yii2 + AdminLTE + mysql,开发高效的通用管理后台;采用代码生成器,以AminLTE为样式模板,生成数据库表的数据模型model、增删改查的视图view和控制器controller,菜单配置后直接...

penngo ⋅ 2016/10/20 ⋅ 1

THINKPHP框架有没有像YII的GII功能

后台管理最基础的CURD(增删改查),能不能像YII框架那个GII组件一样的功能,自动生成!那真是感谢了,YII2学的好累啊!

水人 ⋅ 2015/02/09 ⋅ 5

tongbobo/fecshop

项目状态123: 正式版本已经出来,后台(appadmin)和pc端(appfront),wap端(apphtml5)已经完成,完成了一些基本的api。 1、Fecshop介绍 Fecshop 全称为Fancy ECommerce Shop,是基于php...

tongbobo ⋅ 2017/08/09 ⋅ 0

开源电商系统--Fecshop

Fecshop 全称为 Fancy ECommerce Shop,是基于 PHP Yii2 框架开发的一款优秀的开源电商系统,遵循 BSD-3-Clause 协议,Fecshop 支持多语言,多货币,架构上支持 PC,手机 Web,手机 APP,和 ...

FecShop ⋅ 2017/05/22 ⋅ 19

yii2项目实战-用户管理之user组件的配置

作者:白狼 出处:http://www.manks.top/document/yii2-user-config.html 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律...

白狼栈 ⋅ 2016/08/22 ⋅ 0

yii2源码分析之执行基本流程

用yii2框架用了将近2年,一直都没有去看过它底层源码, 马上快不用了,最近对其源码研究一番,哈哈 废话少说,上代码, 入口文件是web/index.php

china_lx1 ⋅ 04/22 ⋅ 0

5月YII2学习总结

5月份YII2学习任务基本上告一段落了,总体感觉只是简单学习了YII2,可以进行基本的应用开发,文档没有全部看完,自己简单做了一个QA问答系统进行练手。 QA问答系统功能: 1、登陆、注册、收藏...

卖小女孩的小火柴 ⋅ 2015/05/25 ⋅ 2

Yii2使用$this->context获取当前的Module/Controller/Action

使用Yii2的时候,在某些场景和环境下需要获得Yii2目前所处于的module(模型)、Controller(控制器)、Action(方法),以及会调用控制器里面已经定义过的一些公共的方法等.对于这些问题Yii2可以在视...

botkenni ⋅ 06/13 ⋅ 0

yii2开发中19条推荐实践(阿北总结)

虽然每个人的编程风格不同,但是有些建议能让你的代码更加规范和稳定,本次就我这次网站更新总结如下几点,希望对你的yii2学习和使用有所帮助。 环境说明 服务器环境: CentOS 开发环境及IDE...

阿北2017 ⋅ 06/02 ⋅ 0

Yii2框架图解

Yii2框架图解 Love冥天个人博客-关注IT|PHP|互联网|php个人博客交流2017-11-281 阅读 yii2Yii2 图片根据Yii类参考手册,Yii源代码,开发常用方法构成. 1.yii2 控制器类图 2.yii2 cookie 类图...

Love冥天个人博客-关注IT|PHP|互联网|php个人博客交流 ⋅ 2017/11/28 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

JVM堆的理解

在JVM中,我们经常提到的就是堆了,堆确实很重要,其实,除了堆之外,还有几个重要的模块,看下图: 大 多数情况下,我们并不需要关心JVM的底层,但是如果了解它的话,对于我们系统调优是非常...

不羁之后 ⋅ 昨天 ⋅ 0

推荐:并发情况下:Java HashMap 形成死循环的原因

在淘宝内网里看到同事发了贴说了一个CPU被100%的线上故障,并且这个事发生了很多次,原因是在Java语言在并发情况下使用HashMap造成Race Condition,从而导致死循环。这个事情我4、5年前也经历...

码代码的小司机 ⋅ 昨天 ⋅ 1

聊聊spring cloud gateway的RetryGatewayFilter

序 本文主要研究一下spring cloud gateway的RetryGatewayFilter GatewayAutoConfiguration spring-cloud-gateway-core-2.0.0.RC2-sources.jar!/org/springframework/cloud/gateway/config/G......

go4it ⋅ 昨天 ⋅ 0

创建新用户和授予MySQL中的权限教程

导读 MySQL是一个开源数据库管理软件,可帮助用户存储,组织和以后检索数据。 它有多种选项来授予特定用户在表和数据库中的细微的权限 - 本教程将简要介绍一些选项。 如何创建新用户 在MySQL...

问题终结者 ⋅ 昨天 ⋅ 0

android -------- 颜色的半透明效果配置

最近有朋友问我 Android 背景颜色的半透明效果配置,我网上看资料,总结了一下, 开发中也是常常遇到的,所以来写篇博客 常用的颜色值格式有: RGB ARGB RRGGBB AARRGGBB 这4种 透明度 透明度...

切切歆语 ⋅ 昨天 ⋅ 0

CentOS开机启动subversion

建立自启动脚本: vim /etc/init.d/subversion 输入如下内容: #!/bin/bash## subversion startup script for the server## chkconfig: 2345 90 10# description: start the subve......

随风而飘 ⋅ 昨天 ⋅ 0

Nginx + uwsgi @ubuntu

uwsgi 安装 sudo apt-get install python3-pip # 注意 ubuntu python3默认没有安装pippython3 -m pip install uwsgi 代码(test.py) def application(env, start_response): start_res......

袁祾 ⋅ 昨天 ⋅ 0

版本控制工具

CSV , SVN , GIT ,VSS

颖伙虫 ⋅ 昨天 ⋅ 0

【2018.06.19学习笔记】【linux高级知识 13.1-13.3】

13.1 设置更改root密码 13.2 连接mysql 13.3 mysql常用命令

lgsxp ⋅ 昨天 ⋅ 0

LVM

LVM: 硬盘划分分区成物理卷->物理卷组成卷组->卷组划分逻辑分区。 1.磁盘分区: fdisk /dev/sdb 划分几个主分区 输入t更改每个分区类型为8e(LVM) 使用partprobe生成分区的文件:如/dev/sd...

ZHENG-JY ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部