zoukankan      html  css  js  c++  java
  • 模型中的数据操作

    Model

    class User extends Model
    {
    
        protected $pk = 'id';
        protected $table = 'test_user';
        protected $autoWriteTimestamp = true;
    
    
        public function getInfoById($id)
        {
            $res = User::where('id',$id)->find();  //模型 调用数据库的方法,返回对象数组
            return $res;
        }
    
        public function createInfo($data)
        {
            $res = User::create($data);  //模型的静态方法,可自动生成create_time,update_time,返回对象数组
            return $res;
        }
    
        public function updateInfo($data)
        {
            $res = User::update($data);  //模型的静态方法,可自动修改update_time,返回对象数组
            return $res;
        }
      //如果是User::where()->update($data),则是调用数据库方法,不自动修改update_time,返回影响记录数   public function deleteInfoById($id) { $res = User::where('id',$id)->delete(); //调用数据库的方法,返回影响的记录数 return $res; } }

    Controller

    class Index extends Controller
    {
        public function testModel()
        {
            $model = new User();
    
            $data = [
                'name'=>'金毛狮王',
                'password'=>'123',
                'email'=>'jmsw@php.cn'
            ];
    
            $data = $model->createInfo($data);
    
            dump($data);
        }
    }
    

      

     //数据库操作

    1、数据库方法:User::where()->update()、User::insert() 等返回影响的记录条数 int(0),不能自动写入时间戳

    2、模型动态方法:$model=new User(); $model->save() 等返回布尔值,可以自动写入时间戳

    3、模型静态方法:$User::create()、$User::update() 等返回对象数组,可以自动写入时间戳

    //对应操作方法

      

     
    数据库DB find(数组/null)、select(二位数组/空数组) insert(记录数)、insertAll(记录数) update(记录数) delete(记录数)
    模型动态 find(对象数组/null)、select(二位对象数组/空数组) save(bool)、saveAll(二维对象数组) update(对象数组) delete(bool)
    模型静态 find(对象数组)、select(二位对象数组) create(对象数组) update(对象数组) destroy(bool(true))

    //$model->where('id',1)->find(),返回对象数组

    //$model->find(1),返回对象数组

    //Model::where('id',1)->find(),返回对象数组

    //Model::find(1),返回对象数组

    //模型直接调用方法,正常情况返回对象数组/bool/null,但中间有where()的情况,在update、delete中会改变返回结果

    //$model->where()->update(),调用数据库的方法,返回记录数,不修改update_time

    //Model::where()->update(),调用数据库的方法,返回记录数,不修改update_time

    //$model->update(),模型的动态方法,返回对象数组,可自动修改update_time

    //Model::update(),模型的静态方法,返回对象数组,可自动修改update_time

    //$model->where()->delete(),调用数据库的方法,返回记录数,delete()中不可传参

    //Model::where()->delete(),调用数据库的方法,返回记录数,delete()中不可传参

    //$model->delete(),模型的动态方法,返回bool(false),不可用

    //$model->find()->delete(),模型的动态方法,返回bool值,delete()中不可传参,find()中须传参

    //Model::destory(),模型的静态方法,返回bool,destory()中须传参

    //模型的增或改的方法,都可以自动修改时间戳

    对象数组

    dump($res) 

    array(13) {
      [0] => array(7) {
        ["id"] => int(1)
        ["name"] => string(6) "郭靖"
        ["email"] => string(14) "guojing@qq.com"
      }
      [1] => array(7) {
        ["id"] => int(2)
        ["name"] => string(6) "黄蓉"
        ["email"] => string(16) "huangrong@qq.com"
      }
    }

    object    //gettype($res)
    dump($res[0]->name) 
    //郭靖

    //访问对象内部的属性必须用:->

    //访问数组内部的值必须要用:[]

    //访问对象数组内部的属性,用->、[]都可以,上面的输出也可用:dump($res[0]['name'])

    //上面的$res是一个二维对象数组,echo gettype($res[0]) ,输出object

    数据库方法和模型的静态方法

    数据库方法:

    Db::table('student')
                ->where('id',20)
                ->delete();

    模型的静态方法:

    Student::where('id',24)->delete();

    //Db::table('student')    ===   Student::

  • 相关阅读:
    POJ 1182 食物链 +POJ 2492 A Bug's Life 种类并查集
    Codeforces 884C Bertown Subway dfs判环
    HDU 2102 A计划 bfs
    Codeforces Round #442 (Div. 2) 877E
    Codeforces Round #443 (Div. 2) B. Table Tennis
    Codeforces Round #442 (Div. 2) D. Olya and Energy Drinks
    HDU 1495 非常可乐 BFS/数论
    Codeforces Round #442 (Div. 2) B. Nikita and string DP
    51Nod 1102 面积最大的矩形 +1272 最大距离 单调栈
    HDU 1286 找新朋友
  • 原文地址:https://www.cnblogs.com/qq254980080/p/9552235.html
Copyright © 2011-2022 走看看