thinkphp_3.1.2的CURD

  • thinkphp_3.1.2中的MVC模式
    ①MVC:
    M(Model) 模型 (负责数据的操作,编写model类
    V(View) 视图(模板) (负责前台页面展示,编写.html文件
    C(Controller)控制器(模块) (描述功能,编写类文件

    ②MVC分别所对应的目录
    M: 项目目录/应用目录/lib/Model
    V: 项目目录/应用目录/Tpl
    C: 项目目录/应用目录/lib/Action

    ③通过url来访问C模块(其实是类文件中的方法)

    通过url访问C模块的四种方式
    <1> PATHINFO模式 (推荐使用)
    http://域名/项目名/入口文件/模块名/方法名/键1/值1/键2/值2
    默认:http://localhost/thinkphp/index.php/Index/index

    <2> 普通模式
    http://域名/项目名/入口文件?m=模块名&a=方法名&键1=值1&键2=值2

    <3> REREAD模式
    去掉入口文件

    <4> 兼容模式
    http://域名/项目名/入口文件?s=模块名/方法名/键1/值1/键2/值2

  • thinkphp_3.1.2输出

    在thinkphp_3.1.2框架中,输出到界面不是靠单个.php文件或单个.html文件来展示。它是通过模块中的方法(C),进行数据操作(M),再调用模板中的.html文件(V)渲染到前台。

    ① 通过echo等原生PHP输出方式
    ② 通过assgin()分配变量和display()方式输出(调用模板)
    ③ 在项目文件下的Confconfig.php修改模板的左右定界符(默认是“{}”但容易混淆,修改成“<{}>”)

    config.php
    <?php
        return array(
            //修改左定界符
            'TMPL_L_DELIM' => '<{',
            //修改右定界符
            'TMPL_R_DELIM' => '}>',
        );
    ?>
  • thinkphp_3.1.2中的数据库增删查改(CURD)

    TP_3.1.2读取数据
    <1> selec() //获取所有数据,以数组形式返回
    <2> find() //获取单条数据
    <3> getField('字段名') //获取一个具体的字段对应的值

    TP_3.1.2创建数据
    ->字段名 = 值
    再 -> add()方法

    TP_3.1.2删除数据
    delete(id) 或 配合连贯操作where()方法来删除

    TP_3.1.2更新数据
    save($arr) 其中$arr是表中字段对应的值

    编写配置文件

    config.php
    <?php
        return array(
            /*

            1.传统方式
            //配置哪种数据库
            'DB_TYPE' => 'mysql',

            //配置主机
            'DB_HOST' => 'localhost',

            //配置数据库名称
            'DB_NAME' => 'thinkphp',

            //配置用户
            'DB_USER' => 'root',

            //配置密码
            'DB_PWD' => '',

            //配置端口号
            'DB_PORT' => '3306',

        */
            //配置数据库表前缀
            'DB_PREFIX' => 'tp_',

            //2.DSN 方式:使用DSN来简化配置数据库信息(以DSN优先)
            'DB_DSN' => 'mysql://root:@localhost:3306/thinkphp',
                );
    ?>
  • 例子

    <1>.在数据库thinkphp中建一个user表,字段有id,username,sex.
    这里写图片描述

    <2>.因为这是一个用户功能模块,所以要在Home文件下/lib文件下/Action目录下/创建一个controller用户模块UserAction.class.php格式必须是xxxAction.class.php
    这里写图片描述

    <3>在此模块下编写需要的方法

    class UserAction extends Action{
        //基础默认方法index()
        public function index(){
            $m = M('User') #或者 $m = new Model('User');
            $arr = $m->select();
            $this->assign('data',$arr);
            $this->display();
        }
        /*
            此时需要在Home目录下/Tpl目录下/建对应的模块名文件夹(如User)下/建与方法名同名的模板文件index.html
        */

        #删除操作
        public function del(){
            $m = M('User');
            $id = $_GET['id'];
            #可以直接指定删除哪条记录,具有返回值且为影响行数
            $count = $m->delete($id);
            if($count>0){
                $this->success('删除数据成功'); 
            }else{
                $this->error('删除数据失败');
            }
        }
        /*
            这里在模板index.html文件中
            <a href='__URL__/del/id/<{$vo.id}>'>删除</a>GET方式来传入id删除指定数据
        */

        #通过modify()方法来显示修改界面
        public function modify(){
            $id = $_GET['id'];
            $m = M('User');
            $arr = $m->find($id);
            $this->assign('data',$arr);
            $this->display();
        }
        /*
            1.这里需要在Home目录下/Tpl目录下/对应的模块名文件夹(如User)下/建与方法名同名的模板文件modify.html
            2.再<form action="__URL__/update" method='post'>通过表单提交到update方法,前面也说过在thinkphp中没有单独的.php文件来承载某些功能,它使用模块中方法来实现
        */

        #通过update()方法来实现数据库的更新
        public function update(){
            $m = M('User');
            $data['id'] = $_POST['id'];
            $data['username'] = $_POST['username'];
            $data['sex'] = $_POST['sex'];
            $count = $m->save($data);
            if($count>0){
                $this->success('数据修改成功','index');
            }else{
                $this->error('修改失败');
            }
        }

        #通过add()方法来显示添加页面模板(同理要在Home目录下/Tpl目录下/对应的模块名文件夹(如User)下/建与方法名同名的模板文件add.html)
        public function add(){
            $this->display();
        }
        /*
            其中add.html内容
            <form action="/thinkphp/index.php/User/create" method='post'>
            姓名:<input type='text' name='username'  /><br/>
            性别:男<input type='radio' name='sex' value='1' /> 女<input  type='radio' name='sex' value='0' /><br/>
            <input type='submit' value='确定添加' name='doSubmit' />
            </form>
        */
        这里通过post方式把表单数据提交到create()方法下

        #增加数据
        public function create(){
           $m = M('User');
           $m->username = $_POST['username'];
           $m->sex = $_POST['sex'];
           $count = $m->add();
           if($count>0){
                $this->success('添加成功','index');
           }else{
                $this->error('添加失败');
           } 
        }
    }

需要改变下观点:就是在thinkphp_3.1.2中不存在单个.php文件,它都是通过访问Controller模块中的方法,进行数据操作,通过模板渲染到前台。特别需要注意的是:在哪个模块下使用哪个方法,那么模板文件应该在Tpl文件夹中建对应的模块名文件夹,再在此文件下创建响应方法名的.html模板文件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值