我已经开始了一个新的laravel网站项目,并且我在理解MVC时遇到了一个障碍。我需要重构才能继续,但我不知道最好的方法。复杂页面的Laravel控制器
目前我有网页显示一个单一位逻辑的结果。即列出所有用户的页面,列出仅一个用户的详细信息的页面等等 - 全部由userController
处理。这适用于由其他控制器处理的其他页面。
我创建了与我的数据库中的表格直接相关的模型,以及与模型相关的控制器。我将业务逻辑从控制器转移到了服务。控制器使用这些服务来执行业务逻辑和返回的数据,并将这些数据传递给视图。
这很好地将类似的功能组合在一起,工作正常。
userTable -> userModel -> userController -> userService
clientTable -> clientModel -> clientController -> clientService
...
在我的路线,我有做相关功能使用相同的各控制器页,但根据页面所做的各个方法
/listallusers -> [email protected] -> userList.blade.php
/listallclients -> [email protected] -> clientList.blade.php
/listdetailofoneclient -> [email protected] -> clientDetails.blade.php
与做网页时,这是确定功能和(除了使用服务)似乎是laravel文档中暗示的。
不过,我开始用,要么真的不使用的功能来自任何巨资从多个服务(和数据需要的功能服务或网页的页面打交道时,弄不清楚控制器需要复杂的操作比如格式化等)。
- 一个基本的索引页。
什么控制器会处理这个问题?该索引可能链接到由现有控制器处理的路由,但除此之外可能不需要显示太多功能。这意味着控制器不需要将任何数据传递到视图上。你可能坚持逻辑返回路径文件中的视图,但是这是非常紧密耦合。
- ,显示一个页面复杂的客户端和用户数据
- 质疑MVC做控制器需要的等效模型一些积分?
- 控制器可以控制其他控制器以分离逻辑吗?
您需要客户端数据和用户数据传递到来自控制器的视图。但是从什么控制器?这是真的让我失望的部分。
因为我的页面数量有限,但每页显示的逻辑很多,所以我想制作一个处理路由的page controller
(或其他)。虽然我看了,但是在任何地方我都没有看到任何真正提及这个想法的事情,这让我觉得我要么在重新发明轮子,要么没有掌握laravel/MVC中的一些基本概念。
本例中的页面控制器是否会处理全部的路由?它是否仅处理具有“重叠”现有控制器功能的页面和不属于现有控制器的页面?页面控制器是一个好主意吗?
已经让我从这个问题