gpt4 book ai didi

php - laravel 我需要每个表的模型和 Controller 吗?

转载 作者:可可西里 更新时间:2023-11-01 13:49:26 24 4
gpt4 key购买 nike

我知道这是一个重复的问题,但我认为它会对其他人有所帮助,因为有很多类似的应用程序都具有这种表关系:

enter image description here

所以问题是,对于使用 Eloquent 的模式中的所有关系,什么是最佳解决方案?要制作多少模型和 Controller ?

最佳答案

首先,您需要了解并非数据库中的所有表都代表一个实体。

例如,userspostscomments 等表是实体。而 posts_userscomments_posts 不是:它们出于技术原因出现在这里,以具体化两个实体之间的关系。

只有实体需要模型:为关系表建立模型是没有意义的。

即使一个表包含像 date_created 这样的信息,它也不会使它成为一个实体。这只是与关系相关的数据。例如,表 users_roles 可能有一个名为 date_assigned 的列,用于了解给定用户何时被分配给定角色。它不是所有这些的实体。

其次,您需要了解 Controller 的用途。 Controller 的作用是处理请求并提供结果。结果可以是一个 View 、一个错误 (HTTP 404),或者只是一个操作已成功完成的事实。

您还必须区分名为 Controller 的类(或扩展此基类的任何子类)和实际 Controller 。实际 Controller 是将处理请求的代码。一个 Controller 类可以有多个方法来处理请求。

这都是组织的问题:一般情况下,Controller 类用于将同一作用域内的方法分组:用户登录、注销、订阅、密码提醒都是同一作用域。所有这些 Controller 都可以在不同的类或函数中。不要紧。每个方法都是一个 Controller 。它们被分在同一个类中,因为它们有相同的需求(检查用户是否登录,了解是否需要登录,是否可以显示订阅页面等)并且它们在相同的范围内,这才有意义你想想看。这是合乎逻辑的:当您需要更改有关用户标识的某些内容时,您知道去哪里搜索(即使您是该项目的新手)。

因此您需要为这些实体建立模型:

  • 用户
  • 报价
  • 发票
  • 类别

您需要的 Controller 取决于您希望/需要对这些数据执行的操作。您问题的这一部分没有现成的答案。

Controller 类用于:

  • 用户认证(如果你需要的话)
  • 用户管理(后台)
  • 发票管理(编辑、标记已付、延迟付款列表等)
  • 类别管理(创建、编辑、删除)
  • 报价管理

但根据您的应用,您可能需要更多。只有你才能真正说出来。这个问题没有不好的答案:如果您认为某些 Controller 应该分开以便更好地组织,那就去做吧。如果你认为你应该分组 2 或更多,那就去做吧。没有规则。你必须保持你的代码清晰和有条理。它必须适合您的需要。就这样。

关于php - laravel 我需要每个表的模型和 Controller 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37360810/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com