Php ORM实现如何区分数据库字段和类';成员变量

Php ORM实现如何区分数据库字段和类';成员变量,php,orm,Php,Orm,让我们以Laravel的ORM实现(雄辩)为例。然而,这个问题适用于我所知道的所有ORM解决方案 一个模型(例如用户)扩展了Laravel的雄辩类,我们有“查找”或“保存”之类的函数。在docs()中,我们有以下代码片段: $user = new User; $user->name = 'John'; $user->save(); 我试图分析这个“保存”方法,但没有成功(这是一个非常大的类) 问题是-此方法如何区分数据库字段和类的成员变量,假设我的用户类如下所示: class

让我们以Laravel的ORM实现(雄辩)为例。然而,这个问题适用于我所知道的所有ORM解决方案

一个模型(例如用户)扩展了Laravel的雄辩类,我们有“查找”或“保存”之类的函数。在docs()中,我们有以下代码片段:

$user = new User;

$user->name = 'John';

$user->save();
我试图分析这个“保存”方法,但没有成功(这是一个非常大的类)

问题是-此方法如何区分数据库字段和类的成员变量,假设我的用户类如下所示:

class User extends Eloquent{
 public $someVariable;
}

“save”方法如何知道“someVariable”不是数据库中的字段,然后在数据库中更新或在“insert”语句中使用?但是,另一方面,“name”变量就是这样一个字段?

name
,在本例中,是通过神奇的方法创建的。它在课堂上不存在,也永远不会存在<另一方面,code>save()是该类的一个已定义方法,虽然我不确定,但它可能也是
final
,因此不能被覆盖。谢谢!实际上,有一个_集魔术方法,它更新“$attributes”数组。所以它确实是这样工作的。再次感谢!