在《phpcms二次开发之模型类model.class.php》中讲到了模型类的建立方法,接下来我讲一下模型类的应用。
      前段时间我基于phpcms v9开发了一个足球网。足球网是由好几个模块组成的,如图: 
 

我选其中一个比较简单的级别管理模块来说一下模型类的应用,为了明了我对其作了简化,但是功能保持完整,基本上包函了模型类的基本应用,如添加数据,修改数据、查询数据、删除数据。

一、模型操作方法insert()--添加数据

下面是级别模块的后台控制器level.php的代码片断:
01 <?php
02 defined('in_phpcms'or exit('no permission resources.');
03 pc_base::load_app_class('admin''admin', 0);
04 pc_base::load_app_func('global');
05 class level extends admin {//继承后台管理类,所以就含有了权限控制
06      private $level;
07     public $username;
08  //控制器的构造函数,加载初始化一些功能操作 ,如加载了level_model
09    public function __construct() {
10       
11        $this->username = param::get_cookie('admin_username');
12        $this->level = pc_base::load_model('level_model');//加载级别模型类level_model.class.php
13           
14        }
15    //添加足球级别信息
16    public function addlevel(){
17       if(isset($_post['dosubmit'])){//判断如果提交表单则执行下面的插入语句
18          
19        if($this->level->insert($_post['football'])){
1    showmessage(l('level_successful_added'),'?m=football&c=level&a=levellists');
2 }
1 }else{
2   include $this->admin_tpl('level_add');//加载后台添加级别的模板
3     }
4 }
 insert()是插入数据的模型方法,$_post['football']是提交过来的级别字段,它是一个数组,如图:
 

模板代码片断:

01 <form action="?m=football&c=admin_sl&a=addlevel" method="post" name="myform" id="myform" >
02 <table class="table_form" width="100%" cellspacing="0">
03 <tbody>
04 <tr>
05 <th width="80"><strong><?php echo l('level_name')?>:</strong></th>
06 <td><input type="text" name="football[level]" size="20" id="level" class="input-text"/></td>
07 </tr>
08 <tr>
09 <th width="80"><strong></strong></th>
10 <td><input type="submit" name="dosubmit" id="dosubmit" value=" <?php echo l('submit')?> ">&nbsp;<input type="reset" class="dialog" value=" <?php echo l('clear')?> "</td>
11 </tr>
12 </tbody>
13 </table>
14 </form>
上面的addlevel()方法如果转化为mysql语句为:
01 public function addlevel(){
02     if(isset($_post['dosubmit'])){
03     $sql "insert into `fb_level` (`level`) values ('".football[level]."')";
04     $result=$this->level->query($sql);
05     if($result){
06     showmessage(l('level_successful_added'),'?m=football&c=level&a=levellists');
07     }
08   
09     }else{
10     include $this->admin_tpl('level_add');
11    }

通过两个方法的对比我们知道,使用phpcms v9封装的方法insert()插入数据时更为简单方便。当然上面插入的字段只有一个,如果插入十几二十个字段的话,依然是$this->level->insert($_post['football'])就搞定。如果用mysql语句的话,就显得繁琐不堪了。砍柴不误磨刀工,所以phpcms v9二次开发中,熟悉运用model.class.php数据库模型类的方法,能起到事半功倍的作用。(待续...)

phpcms v9二次开发之模型类的应用(1)的更多相关文章

  1. phpcms v9二次开发之模型类的应用(2)

    二.模型操作方法select()--查询语句         //查询级别管理列表信息    public function levellists() { $lelists = $this->l ...

  2. phpcms v9二次开发之数据模型类

    系统模型类:model.class.php数据模型类的位置:/phpcms/libs/classes phpcms v9二次开发中,我们要经常需要对模块的数据表进行查询.添加.修改和删除数据等操作,所 ...

  3. PHPCMS V9二次开发便捷自定义后台入口文件夹

    phpcms v9二次开发便捷自定义后台入口文件夹 最新发布的phpcms v9由于采用了mvc的设计模式,所以它的后台访问地址是固定的,虽然可以通过修改路由配置文件来实现修改,但每次都修改路由配置文 ...

  4. PHPCMS V9二次开发]自定义字段模型-文本组

    phpcms v9,我们在做类似于酒店房型等类型的时候,需要用到文本组字段模型,但phpcms并未提供该模型.如下图所示效果: 展示效果如下: 步骤/方法 打开phpcms\modules\conte ...

  5. phpcms v9二次开发笔记

    phpcms是基于MVC结构的. 安装: 下载phpcms_v9.5.9_UTF8.zip:新建目录phpcms,将压缩包里install_package目录下所有文件复制到phpcms目录.浏览器输 ...

  6. phpcms V9 二次开发------(获取点击数详解)

    关于phpcms V9的点击数的使用应该有不少数是直接调用网上搜索到的代码,但是对于一些想要深入研究开发的人来说,看到网上的代码后更是不解,本人这几天看了看,了解了一些东西,在这里写出来分享一下,首先 ...

  7. [PHPCMS V9二次开发]自定义字段模型-添加字段类型

    步骤/方法 打开phpcms\modules\content\fields目录,复制文件夹downfiles,并改名为textgroups. 打开phpcms\modules\content\fiel ...

  8. phpcms v9 二次开发 - 自己添加源文件

    一.在根目录添加入口文件, 我现在要在根目录添加一个文件名为test.php 这样一个文件,为了调用系统的公用类和函数,必须加入一下包含文件 test.php代码如下 <?phpdefine(' ...

  9. PHPCMS V9 二次开发常用代码集

    0:调用最新文章,带所在版块 {pc:get sql="SELECT a.title, a.catid, b.catid, b.catname, a.url as turl ,b.url a ...

随机推荐

  1. VS2013下的Nmake编译链接成win XP的可执行程序

    nmake下没有指定toolset=vc120_xp等类似物.但是,可以指定Link.exe的链接参数,指定子系统就可以了,/SUBSYSTEM:[WINDOWS | CONSOLE],5.01 5. ...

  2. Codeforces Round #312 (Div. 2) A.Lala Land and Apple Trees

    Amr lives in Lala Land. Lala Land is a very beautiful country that is located on a coordinate line. ...

  3. HDU_1430——魔板,预处理,康托展开,置换,string类的+操作

    Problem Description 在魔方风靡全球之后不久,Rubik先生发明了它的简化版——魔板.魔板由8个同样大小的方块组成,每个方块颜色均不相同,可用数字1-8分别表示.任一时刻魔板的状态可 ...

  4. NSString copy or not (strong)?

       前些日子笔者一直在维护公司的一些旧项目,项目里面的NSString属性几乎全部用的strong,而我在给项目增加一些新的功能的,又都用的copy,因为在我的脑子里几乎已经把NSString大部分 ...

  5. IOS学习教程

    http://edu.51cto.com/course/course_id-566.html

  6. POJ 1458-Common Subsequence(线性dp/LCS)

    Common Subsequence Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 39009   Accepted: 15 ...

  7. Amoeba是一个类似MySQL Proxy的分布式数据库中间代理层软件,是由陈思儒开发的一个开源的java项目

    http://www.cnblogs.com/xiaocen/p/3736095.html amoeba实现mysql读写分离 application  shang  2年前 (2013-03-28) ...

  8. QP01 BAPI、QP02 BDC

    近期在改动一个检验计划分配的一个程序.上网查了一些资料,分别对QP01检验计划创建.改动QP02.删除物料等操作.分享一下. 一.QP01 BAPI BAPI_INSPECTIONPLAN_CREAT ...

  9. lab3

    lamp: 在阿里云linux(Ubuntu)上安装Apache mysql php : apt-get install mysql_server mysql_client php5 php_mysq ...

  10. Asp.net 回车默认按钮

    <head> <script type="text/javascript"> function OnKey()      {          if (ev ...