Php Laravel Eleoquent模型自动字段
大家好,我是PHP和Laravel的新手,我的问题是,这整件事是如何进行的 我的意思是,当我创建一个模型类并使用它进行迁移时,我可以像这样使用它Php Laravel Eleoquent模型自动字段,php,laravel,Php,Laravel,大家好,我是PHP和Laravel的新手,我的问题是,这整件事是如何进行的 我的意思是,当我创建一个模型类并使用它进行迁移时,我可以像这样使用它model->title=“value”。雄辩的模型如何确定表结构并在类中创建成员变量 class Post extends Model { public function author() { return $this->author; } } 迁移中创建的模式是否存在某种反射?或者一些多态魔法?它们不是成员变量。直到Elo
model->title=“value”代码>。雄辩的模型如何确定表结构并在类中创建成员变量
class Post extends Model
{
public function author()
{
return $this->author;
}
}
迁移中创建的模式是否存在某种反射?或者一些多态魔法?它们不是成员变量。直到Eloquent真正查询到您的模式之前,它对您的模式一无所知。因此,从数据库检索模型时,所选字段存储在名为$attributes
的数组中
这里使用的名为\uu get
的对象有一个神奇的方法。当您尝试访问对象的不可访问属性时,将调用此函数。因为没有带有它调用的\uu get
字段名称的公共成员变量。当您查看在模型上定义的方法时,您将看到它调用getAttribute
就像有一个\uuu get
一样,有一个\uu set
神奇的方法来设置不可访问的属性。在型号\uu set
上调用setAttribute
我希望这能给你一些关于这个问题的启示。有更多的东西在发挥作用,如关系和访问器/变异器,但这是基本的想法
\uuu获取
\uu设置
\u获取
\u设置
getAttribute
setAttribute
它们不是成员变量。直到Eloquent真正查询到您的模式之前,它对您的模式一无所知。因此,从数据库检索模型时,所选字段存储在名为$attributes
的数组中
这里使用的名为\uu get
的对象有一个神奇的方法。当您尝试访问对象的不可访问属性时,将调用此函数。因为没有带有它调用的\uu get
字段名称的公共成员变量。当您查看在模型上定义的方法时,您将看到它调用getAttribute
就像有一个\uuu get
一样,有一个\uu set
神奇的方法来设置不可访问的属性。在型号\uu set
上调用setAttribute
我希望这能给你一些关于这个问题的启示。有更多的东西在发挥作用,如关系和访问器/变异器,但这是基本的想法
\uuu获取
\uu设置
\u获取
\u设置
getAttribute
setAttribute
您是否阅读了相应的文档?Eloquent了解表之间的关系,因为您必须告诉模型它们之间有哪些关系。在这种情况下,作者有许多帖子,而帖子属于作者。正如这里所解释的:@DimitriMostrey我更感兴趣的是它的php部分,它内部的什么机制允许我在不声明该类中的变量的情况下执行$this->author
。@antostafeyev$模型上下文中的这是模型本身<代码>类Post扩展模型
。请查看“照明模型”类。这是Laravel项目中最大最复杂的文件之一。表达式$object->var
或$object->method()->var
背后的机制可以在PHP的原生StdClass和面向对象编程(OOP)中找到。如果你有兴趣了解这个机制,这就是你需要研究的。PHP网站本身有一个很好的起点:@AntonStafeyev感谢您的雄辩回应。您询问了机制,我如何知道您对PHP/OOP的了解?如果你知道的话,你现在就会明白了。以下是您的答案:您是否阅读了相应的文档?Elount了解表之间的关系,因为您必须告诉模型它们之间有哪些关系。在这种情况下,作者有许多帖子,而帖子属于作者。正如这里所解释的:@DimitriMostrey我更感兴趣的是它的php部分,它内部的什么机制允许我在不声明该类中的变量的情况下执行$this->author
。@antostafeyev$模型上下文中的这是模型本身<代码>类Post扩展模型。请查看“照明模型”类。这是Laravel项目中最大最复杂的文件之一。表达式$object->var
或$object->method()->var
背后的机制可以在PHP的原生StdClass和面向对象编程(OOP)中找到。如果你有兴趣了解这个机制,这就是你需要研究的。PHP网站本身有一个很好的起点:@AntonStafeyev感谢您的雄辩回应。您询问了机制,我如何知道您对PHP/OOP的了解?如果你知道的话,你现在就会明白了。以下是你的答案: