Skip to content

Latest commit

 

History

History
94 lines (82 loc) · 3.3 KB

orm.md

File metadata and controls

94 lines (82 loc) · 3.3 KB

数据库ORM注解说明

  • orm使用文档

  • db的关系
    Illuminate\Database\DatabaseManager----->Illuminate\Database\Connection(可以进行原生的sql)
    操作------>pdo(原生的pdo了)

    查询构造器 db()->table()->xxx
    这种操作呢关系如下
    Illuminate\Database\Query\Builder------>Illuminate\Database\Connection----->pdo 查询构造器的任何骚操作都是基于Connection的

  • model
    model register model register

    静态使用
    model register
    其实还是实例化的啦
    ORM使用运行流程
    model register
    model register
    model register
    model register
    model register
    model register
    model register
    $query = $this->newModelQuery(); 本代码运行后返回Builder,关系如下
    Illuminate\Database\Eloquent\Builder ---->Illuminate\Database\Query\Builder
    --->Illuminate\Database\Connection ---->pdo
    返回查询构造器 是Eloquent的构造器,并且配置好了数据表
    比如一个插入数据操作

    model register
    model register
    model register
    model register
    model register
    model register
    model register

    经过层层分析,Model是基于查询构造器(Illuminate\Database\Query\Builder -connection-pdo)运行的
    插入操作

    使用Model当然可以调用基于查询构造器的方法
    model register

  • 关联查询1对1 手册 关联模型定义

关联模型查询
假设$phone = User::find(1)->phone;这样运行后 find find find find find

查询到当然最终是基于连接Connection(pdo)啦,结果返回的时候还要用collect包一下【类似映射】
返回 collect collect集合类 collect集合类

  • model 动态方法
    假设如下代码
        $user = new User();
        $collection = $user->find(2);

find
find
find
find
find
find
find
find
find
find
find
find
最终由sql 语法器处理成sql 【查询构造器会存储临时的查询组件】 find 查询组件
find