ThinkPHP5——数据库操作(传统方法)

资源控制器的创建

使用dos命令,生成资源控制器:

  1. 先找到项目目录(即网站目录)
  2. dos命令切换到当前目录,输入:php think make:controller app\index\controller\Users  
  3. 注:最后一个是资源控制器的名称

编写资源路由(app\route.php)

  1. 注释原有代码
  2. 导入资源路由类:use think\Route;
  3. 写对应控制器的资源路由Route::resource('users','index/Users');
  4. 注:在User控制器下的方法对应的View界面,引入文件除了index()方法与static文件同级,其他方法相应的View界面引入文件时(即写相对路径时),都需要跳相应的级(例如:../  ../../  否则会报错!模块不存在!)。

数据库增删改查(User.php,注意导入Db类 即use think\Db;)

查询

  1. 查询,对应着index()方法
  2. 先进行查询操作

        $data = Db::query("select * from user");

     3. 调用assign将结果集分配给数组

        $this->assign("data", $data);

     4. 加载页面

        return view();

      5. 对应app\index\controller目录下新建view文件夹,view目录下新建users文件夹, users目录下新建index.html,编写界面代码。

            {volist name="data" id="value" }

            

              {$value.id}

              {$value.name}

              {$value.pass}

              {$value.age}

              修改

              

                
                                                      
              

     注:以上只是部分代码

     关键点:是用volist传入$data数组,并用value进行标识,在表格中迭代输出。

插入

  1.  在app\index\controller\view\users\目录下新建create.html,编写界面代码。
                       
                                        
          
                                   
          
                                        
          
                                    
         
        

注意:每种标识对应的请求类型,相应的生成路由规则就不同(指form表单中的action值),且每种操作的请求类型不同,需要通过模拟相应的请求,即文中相应.html代码中的隐藏域。

ThinkPHP5——数据库操作(传统方法)_第1张图片

2.  在对应的Users.php中的save()方法中编写代码。

        //接收post请求过来的所有数据

        $data  = input("post.");

        //执行数据库插入

        $res = Db::execute("insert into user value(null, :name, :pass, :age)", $data);

        if($data){

          //跳转

          $this->success("添加成功", '/users');

        }

        else{

          $this->error("添加失败", '/user/create');

        }

 更新

  1.  先编写Users.php中的edit()方法,对index.html中传的id值进行查询。
      //从数据库中查询比修改的数据

        $data = DB::query("select * from user where id = ?", [$id]);

        // dump($data);

        //分配数据

        $this->assign("data", $data[0]);

        //加载页面

        return view();

2.  在app\index\controller\view\users\目录下新建edit.html,编写界面代码。 

    
                            
                                                                     
              
                                                    
              
                                                    
              
                                                
      

注:此处的数据仍然是从edit()方法中的$data数组的第一个元素,且此处的form表单的action值为/users/{$data.id}(注:查表可以看到,这个是用的是update的路由规则,与更新相对应)

3.  在相应的Users.php控制器下update()方法中编写代码。

        //接收数据

        //接收除了_method之外的数据

        $data = $request::instance()->except('_method');

        // dump($data);

        // 执行数据库更新操作

        $db = Db::execute("update user set name=:name, pass=:pass, age=:age where       id=:id", $data);

        if($db){

          $this->success("数据更新成功", '/users')  ;

        }else {

          $this->error("数据更新失败");

        }

 

你可能感兴趣的:(ThinkPHP5)