首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Laravel源码解析之Eloquent Model

    上篇文章我们讲了Database的查询构建器Query Builder, 学习了Query Builder为构建生成SQL语句而提供的Fluent Api的代码实现。...,我们都知道当调用一个不存在的类方法时PHP会触发魔术方法 __callStatic, 调用不存在的实例方法会触发 __call, 很容易就猜到上面这些方法就是通过这两个魔术方法来动态调用的,下面让我们看一下源码...namespace Illuminate\Database\Eloquent; abstract class Model implements ... { public function __call...namespace Illuminate\Database\Eloquent; class Builder { public function __construct(QueryBuilder...是在Query Builder的基础上做了进一步封装, Eloquent Builder会把这些CRUD方法的调用转给Query Builder里对应的方法来完成操作,所以在Query Builder里能使用的方法到

    2.8K50

    orm 系列 之 Eloquent演化历程2

    数据库管理相关的代码都放在Schema目录下, 最开始的结构如下: src/Illuminate/Database/Schema ├── Blueprint.php └── Builder.php 就两个文件...Blueprint和Builder,Schema/Builder负责提供数据库操作的面向对象似的操作,而Schema/Blueprint则负责存储具体的操作数据,包括数据库操作的命令和数据库表的定义,因此有下面的结构...: 接着,我们看看是怎么使用Blueprint的,下看创建table $grammar = new Illuminate\Database\Schema\Grammars\MySqlGrammar; $...我们看下到底做了什么,其目录结构是: src/Illuminate/Database/Connectors ├── ConnectionFactory.php ├── Connector.php ├──...首先是morphMany的构造函数: public function __construct(Builder $query, Model $parent, $morphName) { $this

    3.5K30
    领券