模型中的数据操作

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::

posted @ 2018-08-29 09:10  254980080  阅读(343)  评论(0编辑  收藏  举报