ITPub博客

首页 > 应用开发 > IT综合 > PHP框架-thinkphp-学习笔记-CURD(1)

PHP框架-thinkphp-学习笔记-CURD(1)

原创 IT综合 作者:coolhe 时间:2014-11-18 13:47:08 0 删除 编辑

最近这段时间学习thinkphp,感觉确实是很好用的。不过在学习过程中也遇到了一些问题,现在写出来和大家一起分享;

实验目标:表的CURD。
目标及条件:
1. 主键用guid方式,也就是webid能自动以guid进行填充;
2. 插入时能自动填写一些默认值,比如:新增时,字段: isEnabled=1, dataStatus=1,更新时根据实际值改变。
3. 插入时crtDate,updDate自动插入当前时间。
4. 更新时updDate会自动更新当前时间,crtDate不变。
5. 插入和更新时pinyin字段能根据webname字段的值自动填充。

环境:php 5.2.17; think3.12; mysql 5.0.1b


1.创建表

点击(此处)折叠或打开

  1. drop table if exists ebook_webinfo;

  2. /*==============================================================*/
  3. /* Table: ebook_webinfo */
  4. /*==============================================================*/
  5. create table ebook_webinfo
  6. (
  7.    webId varchar(64) not null comment \'guid\',
  8.    webAddr varchar(100) comment \'范例:www.webset.com\',
  9.    webName varchar(100) comment \'网站名称\',
  10.    pinYin varchar(100) comment \'拼音码\',
  11.    crtDate datetime comment \'创建时间\',
  12.    updDate datetime comment \'最后修改时间\',
  13.    isEnabled int comment \'启用\',
  14.    dataStatus int comment \'数据状态\',
  15.    primary key (webId)
  16. );

2. CURD: 
创建如下php文件,记得要有thinkphp类库哦:)
1.创建Lib->Action->WebinfoAction.class.php, 注意大小写。
2.创建Lib->Model->WebinfoModel.class.php
3.创建Tpl->Webinfo目录,以及下面的add.html, edit.html文件。




2.1 WebinfoAction.class.php

点击(此处)折叠或打开

  1. class WebinfoAction extends Action{

    private  $tablename = 'Webinfo';

    public function __construct()
    {
    }

    public function index()
    {
      // 使用视图显示, Tpl/Webinfo/index.html
      $this->name = $this->tablename; // 进行模板变量赋值
     
      // 读取数据库
      $Data = M($this->tablename); // 实例化Data数据模型
      $this->data = $Data->select();
      $this->display();
    }

    public function insert(){
      $Form   =   D($this->tablename);
      if($Form->create()) {
        $result =   $Form->add();
        echo $Form->getLastSql();
        if($result) {
          $this->success('操作成功!');
        }else{
          $this->error('写入错误!');
        }
      }else{
        $this->error($Form->getError());
      }
    }

    // 该处的id不能变
    public function edit($id=0){
      $Form   =   M($this->tablename);
      echo $id;
      $this->vo   =   $Form->find($id);
      $this->display();
    }
    public function update(){
      $Form   =   D($this->tablename);

      if($Form->create()) {
        $result =   $Form->save();
        if($result) {
          $this->success('操作成功!');
        }else{
          $this->error('写入错误!');
        }
      }else{
        $this->error($Form->getError());
      }
    }
    }

index.html

点击(此处)折叠或打开

  1. <!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">
  2. <html>
  3. <head>
  4. <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">
  5. <title>hello {$name}</title>
  6. </head>
  7. <body>
  8.     <!-- hello {$name}
    -->

  9.     <table style=\"BORDER-COLLAPSE: collapse\" borderColor=#000000 height=40 cellPadding=1 width=250 align=center border=1>
  10.     <tr><td>网站ID</td><td>网站名称</td><td>网址</td></tr>
  11.         <volist name=\"data\" id=\"vo\">
  12.         <tr>
  13.         <td>{$vo.webId}</td>
  14.         <td>{$vo.webName}</td>
  15.         <td>{$vo.webAddr}</td>
  16.         </tr>        
  17.      </volist>
  18.     </table>
  19. </body>
  20. </html>
add.html

点击(此处)折叠或打开

  1. <!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">
  2. <html>
  3. <head>
  4. <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">
  5. <title>Webinfo add</title>
  6. </head>
  7. <body>
  8.     <FORM method=\"post\" action=\"__URL__/insert\">    
  9.     网站名称:<INPUT type=\"text\" name=\"webName\" ><br/>
  10.     网址:<INPUT type=\"text\" name=\"webAddr\" ><br/>
  11.      <INPUT type=\"submit\" value=\"提交\">
  12.      </FORM>
  13. </body>
  14. </html>
edit.html

点击(此处)折叠或打开

  1. <!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">
  2. <html>
  3. <head>
  4. <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">
  5. <title>编辑</title>
  6. </head>
  7. <body>
  8. 编辑状态:
  9.     <FORM method=\"post\" action=\"__URL__/update\">    
  10.     网站ID:<INPUT type=\"text\" name=\"webId\" value=\"{$vo.webId}\"><br/>
  11.     网站名称:<INPUT type=\"text\" name=\"webName\" value=\"{$vo.webName}\"><br/>
  12.     网址:<INPUT type=\"text\" name=\"webAddr\" value=\"{$vo.webAddr}\"><br/>
  13.     <INPUT type=\"hidden\" name=\"webId\" value=\"{$vo.webId}\">
  14.     <INPUT type=\"submit\" value=\"提交\">
  15.   </FORM>
  16. </body>
2.2 WebinfoModel.class.php

点击(此处)折叠或打开

  1. <?php
  2. class WebinfoModel extends Model {
  3.     
  4.     protected $fields = array(
  5.             'webId',
  6.             'webName',
  7.             'webAddr',
  8.             'pinYin',
  9.             'crtDate',
  10.             'updDate',
  11.             'isEnabled',
  12.             'dataStatus',
  13.             '_pk'=>'webId' //主键
  14.     )
  15.     ;
  16.     
  17.     // 定义自动验证
  18.     protected $_validate = array(
  19.             array('webName','require','名称必须'),
  20.     );
  21.     
  22.     // 定义自动完成
  23.     // guid是我的另外一个函数,在thinkphp中没有,需要自己添加
  24.     protected $_auto = array(            
  25.             array('webId','guid',1,'function'),
  26.             array('crtDate','date',1,'function',array('Y-m-d H:i:s')),
  27.             array('updDate','date',self::MODEL_BOTH,'function',array('Y-m-d H:i:s')),
  28.             array('isEnabled','1',1,'function'),
  29.             array('dataStatus','1',1,'function'),
  30.             array('pinYin','getCurPinYin',3, 'callback'),
  31.     );
  32.  
  33.     // 获取拼音
  34.     function getCurPinYin()
  35.     {
  36.        return firstPinyin($_POST['webName']);  // firstPinyin是自己定义的获得拼音首字母函数
  37.     }
       }
rizi_cfun_str.php

点击(此处)折叠或打开

  1. /**
  2.  * 获取Guid
  3.  * @return guid
  4.  */
  5. function guid()
  6. {
  7.     $guid = com_create_guid();
  8.     $str_grid = str_replace('}','', str_replace('{','',str_replace('-', '', $guid)));
  9.     return $str_grid;
    }


通过以上的实验,可以初步学习thinkphp简单的CURD。


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/3090/viewspace-1337494/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2009-04-14

  • 博文量
    118
  • 访问量
    614273