【问题标题】:Is an Eloquent Model the same as a MVC model (in laravel)?Eloquent 模型与 MVC 模型(在 laravel 中)是否相同?
【发布时间】:2016-12-14 00:41:55
【问题描述】:

我看到了这篇文章 (The difference between an Eloquent Model and a Model?),但它没有明确回答我的问题。

我可能在这里没有使用正确的术语...

我理解 Eloquent 是“...一个用于处理您的数据库的 ActiveRecord 实现...”,正如它在文档中所说的那样。但是我不清楚的是这些雄辩的模型之间的区别,以及在 MVC 意义上指代它们的模型。

如果我在特定的 laravel 应用程序中这么说听起来合乎逻辑

  1. 会有很多模型,其中一些是 Eloquent 模型,还有一些是 MVC 意义上的模型。
  2. Eloquent 模型是非常精简和纯粹的类,允许与数据库层进行交互。
  3. 相比之下,MVC 模型可能包含各种业务规则和逻辑
  4. php artisan make:model 可以轻松创建这两种类型,尽管使用 Eloquent 模型可能希望同时创建迁移。
  5. 所有模型都存放在同一个地方,除非另有组织。似乎没有一些外部可见的位置或命名约定来表明这是一个 Eloquent 模型或 MVC 模型。

...这样说对吗?

【问题讨论】:

    标签: php laravel model-view-controller


    【解决方案1】:
    1. 只有模型。其中一些通过使用对象关系映射方法 - Eloquent(众多之一)扩展了功能。您可以在此处阅读有关 ORM 的更多信息:

    https://en.wikipedia.org/wiki/Object-relational_mapping

    1. 它们是一切,但不是精瘦和纯洁。他们被夸大了,并使用大量不必要的数据以易于阅读/使用语法的形式创建数据库对象之间的关系。示例firstModel->secondModel->thirdModel->somethingSilly();

    2. MVC 模型可以包含作为控制器的所有内容它们符合约定,因此您可能应该更广泛地阅读有关 MVC 及其背后的逻辑的信息。

    3. 这几乎就是 Artisan 的目的。让一切变得更加简单易用。

    4. 是的。

    如果您需要更多信息,我可以在下面的评论中为您提供答案和网址。

    【讨论】:

    • 谢谢,这让我有点思考。
    • 我不太确定您对#4 的回答。 Artisan 可能会让事情变得更快,但我发现试图理解它的流程和结构非常困难,(但我是新手,所以嗯)。
    • 在#2 上,我说它们非常精简,因为(如果我理解正确的话)你不必做任何数据库的事情。 Eloquent 模型似乎基本上只是验证规则,然后返回。
    • 在#3上,我理解了MVC的逻辑。我发现 CodeIgniter 是一个非常好的实现。但是“MVC 模型可以包含所有内容作为控制器”是什么意思?
    • hmmm #4 - 工匠的流程和结构。它只是生成具有一点功能的预定义文件和代码结构。我不明白你说的困难是什么意思。 by #2 精益可能不是您想要使用的词。是的,您有非常简化的数据库使用结构,但它是有代价的。那些沉重的多维数组、结构和集合以及 sh*t。我们拥有相当发达的硬件,因此您无需考虑它,而是使用非常严格的类型语言,如 c、c++ 和直接访问内存,一切都很重要。我建议制作1-2个MVC
    猜你喜欢
    • 1970-01-01
    • 2017-07-31
    • 2021-07-04
    • 2017-02-04
    • 1970-01-01
    • 2017-04-03
    • 2020-08-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多