Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel Eleoquent模型自动字段_Php_Laravel - Fatal编程技术网

Php Laravel Eleoquent模型自动字段

Php Laravel Eleoquent模型自动字段,php,laravel,Php,Laravel,大家好,我是PHP和Laravel的新手,我的问题是,这整件事是如何进行的 我的意思是,当我创建一个模型类并使用它进行迁移时,我可以像这样使用它model->title=“value”。雄辩的模型如何确定表结构并在类中创建成员变量 class Post extends Model { public function author() { return $this->author; } } 迁移中创建的模式是否存在某种反射?或者一些多态魔法?它们不是成员变量。直到Elo

大家好,我是PHP和Laravel的新手,我的问题是,这整件事是如何进行的

我的意思是,当我创建一个模型类并使用它进行迁移时,我可以像这样使用它
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的了解?如果你知道的话,你现在就会明白了。以下是你的答案: