8.5 数据库模型操作

Posted sunhao1987

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了8.5 数据库模型操作相关的知识,希望对你有一定的参考价值。

//模型层

<?php namespace appdemomodel; use thinkModel; class Student extends Model{ //获取器 public function getSsexAttr($val){ switch($val){ case 1: return "男"; break; case 2: return "女"; break; default: return "未知"; break; } } //修改器 public function setClassAttr($val){ return md5($val); } //设置,如果没有赋值,需要自动完成的字段 public $auto = [‘Sno‘,‘Ssex‘]; public function setSnoAttr(){ return 18; } public function setSsexAttr(){ return 1111; } } ?>

控制层

<?php
     namespace appdemocontroller;
     
     use thinkController;
     use appdemomodelStudent;//引入模型
     
     class Demo extends Controller{
         public function test(){
             //得到student表中id为4的而数据
             $student = new Student;
             //dump($student->get(4)->toArray());
             //查询操作
             //1 条件查询
             //dump($student->get(["sno"=>101])->toArray());
             //2 闭包查询
             /*$data = $student->get(function($query){
                $query->where(‘Sname‘,‘孙权‘);
            });
            dump($data->toArray());*/
            //3 find方法
            //$data = $student->where(‘Sname‘,‘刘备‘)->find();
            //4 查询多条数据
            /*$data = Student::all(‘1,2,3‘);
            foreach($data as $key=>$stu){
               dump($stu->toArray());
            }*/
            //5 插入数据
            //插入一条
            /*$student->data([‘id‘=>‘‘,‘Sno‘=>‘1000‘,‘Sname‘=>‘哈哈‘,‘Ssex‘=>"男",‘Sbirthday‘=>"男","Class"=>"96080"]);
            $student->save();
            //插入多条
            $list = [
            [‘id‘=>‘‘,‘Sno‘=>‘1000‘,‘Sname‘=>‘哈哈‘,‘Ssex‘=>"男",‘Sbirthday‘=>"男","Class"=>"96080"],
            [‘id‘=>‘‘,‘Sno‘=>‘1000‘,‘Sname‘=>‘哈哈‘,‘Ssex‘=>"男",‘Sbirthday‘=>"男","Class"=>"96080"]
            ];
            dump($user->saveAll($list,false));        */    
            //更新
            /*$student->save([‘Sname‘  => ‘张辽‘,‘Sno‘ => 201],
            [‘id‘ => 1]);*/
            //根据主键删除
            //Student::destroy([1,2,3]);
            // 条件删除 :删除id为0的数据
            //Student::destroy([‘id‘ => 0]);
            //获取器
            /*$data = $student->get([‘id‘=>‘7‘]);
            dump($data->toArray());*/
            //修改器
            /*$data = $student->save([‘Class‘=>‘345‘],[‘id‘=>‘9‘]);
            dump($data);*/
            //自动完成
            //这里没有对age和sex赋值
            /*$data = $student->save([‘Class‘=>‘345‘],[‘id‘=>‘8‘]);
            dump($data);*/
         }
         
     }
    //时间戳
    /*  系统支持自动写入创建和更新的时间戳字段
    第一种方式,是在数据库配置文件中添加全局设置:
    // 开启自动写入时间戳字段
    ‘auto_timestamp‘ => true,
    第二种是直接在单独的模型类里面设置:
    protected $autoWriteTimestamp = true;
    如果这两个地方设置为true,默认识别为整型int类型,如果你的时间字段不是int类型的话,例如使用datetime类型的话,可以这样设置:
    // 开启自动写入时间戳字段
    ‘auto_timestamp‘ => ‘datetime‘,
    或者
    protected $autoWriteTimestamp = ‘datetime‘;*/
?>

 



以上是关于8.5 数据库模型操作的主要内容,如果未能解决你的问题,请参考以下文章

AJAX相关JS代码片段和部分浏览器模型

Cg入门20:Fragment shader - 片段级模型动态变色(实现汽车动态换漆)

使用片段时 Intellij 无法正确识别 Thymeleaf 模型变量

php 一个自定义的try..catch包装器代码片段,用于执行模型函数,使其成为一个单行函数调用

如何防止在背面片段导航上再次设置视图模型

8.5 JavaScript的BOM