(我来自Visual Studio + Entity Framework背景,正在尝试在Laravel + Eloquent中找到相应的功能)
在EF和Visual Studio中,我们向应用程序添加一个新模型,然后告诉它有关我们现有数据库的信息。然后,EF可以为我的表生成具有公共列属性的模型。这为我们提供了所有IDE和编译器的好处,例如Intellisense、拼写错误检测等。
最近我开始探索VS Code、Laravel和Eloquent。通过所有这些教程和文章,我不确定这些属性是何时以及如何在模型类中生成的。我刚刚尝试了artisan make:model
命令,它确实生成了模型类,但其中没有属性。所以,
- 我应该手动编写它们吗?(真的吗?)
- 这些只是公共变量还是带有getter/setter的标准属性(请原谅我对.NET的心态:))?
- 是否有工具/扩展程序可以检查我的数据库并为其列创建具有属性的模型?
更新
感谢回答我的问题的人们。我发表的一些评论是因为我对PHP关于成员访问的(在我看来很奇怪的)方法的无知;我刚刚发现,PHP不会抱怨不存在的类成员,而是在运行时生成它们(例如$post->NonExistingMember = SomeValue
可以正常运行;在我所知道的大多数其他语言中,这甚至不能编译)。这对我来说是个大惊喜。我使用过C++、VB、C#、Java等多种语言,在任何其他地方都没有见过这种行为。所有这些语言都会立即抛出编译时错误,比如类型X不包含名为Y的成员。看不出PHP的不同方法如何与OOP相适应。我发布这个问题的实际问题仍然没有解决。虽然我可以使用reliese/laravel为我的数据库生成模型类,但该工具仍然不会根据表列生成类成员,因此我无法获得自动完成的好处。我希望从专家那里听到是否可以做到这一点(当然是自动的)。
更新2
现在我对Laravel环境有了一点了解,我想分享一下我的经验。请参见下面的答案。