整个持久化层是一个相当大且复杂的 Laravel 组件。是否有人已经深入研究过它并能简要解释一下,在内部的原理图下正在发生什么呢?
- 与其他 ORM 层相比,Eloquent 似乎没有将列元数据缓存/存储在应用程序中?还是说它这样做了?(在 Java JPA 或 Doctrine 中,这是通过注释完成的,但是 laravel 似乎没有这些元数据?)
- 这意味着它必须在每次请求时从MySQL查询
INFORMATION_SCHEMA.COLUMNS
。这是否意味着,laravel 每次简单的 SQL 查询都必须发出两个查询(第一个查询以获取列/表定义)? - 在一个新实例/门面上调用
hasColumn
是否不可避免地会导致 SQL 查询,以检索元数据/表定义吗?