在《phpcms二次开发之模型类model.class.php》中讲到了模型类的建立方法,接下来我讲一下模型类的应用。
前段时间我基于phpcms v9开发了一个足球网。足球网是由好几个模块组成的,如图:
我选其中一个比较简单的级别管理模块来说一下模型类的应用,为了明了我对其作了简化,但是功能保持完整,基本上包函了模型类的基本应用,如添加数据,修改数据、查询数据、删除数据。
一、模型操作方法insert()--添加数据
下面是级别模块的后台控制器level.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 { //继承后台管理类,所以就含有了权限控制
|
08 |
//控制器的构造函数,加载初始化一些功能操作 ,如加载了level_model
|
09 |
public function __construct() {
|
11 |
$this ->username = param::get_cookie( 'admin_username' );
|
12 |
$this ->level = pc_base::load_model( 'level_model' ); //加载级别模型类level_model.class.php
|
16 |
public function addlevel(){
|
17 |
if (isset( $_post [ 'dosubmit' ])){ //判断如果提交表单则执行下面的插入语句
|
19 |
if ( $this ->level->insert( $_post [ 'football' ])){
|
1 |
showmessage(l( 'level_successful_added' ), '?m=football&c=level&a=levellists' );
|
2 |
include $this ->admin_tpl( 'level_add' ); //加载后台添加级别的模板
|
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" >
|
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>
|
09 |
<th width= "80" ><strong></strong></th>
|
10 |
<td><input type= "submit" name= "dosubmit" id= "dosubmit" value= " <?php echo l('submit')?> " > <input type= "reset" class = "dialog" value= " <?php echo l('clear')?> " </td>
|
上面的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 );
|
06 |
showmessage(l( 'level_successful_added' ), '?m=football&c=level&a=levellists' );
|
10 |
include $this ->admin_tpl( 'level_add' );
|
通过两个方法的对比我们知道,使用phpcms v9封装的方法insert()插入数据时更为简单方便。当然上面插入的字段只有一个,如果插入十几二十个字段的话,依然是$this->level->insert($_post['football'])就搞定。如果用mysql语句的话,就显得繁琐不堪了。砍柴不误磨刀工,所以phpcms v9二次开发中,熟悉运用model.class.php数据库模型类的方法,能起到事半功倍的作用。(待续...)