如何正确处理laravel形式?

How to correctly handle laravel form?

我想正确处理用户存储表单。

我在考虑哪个花样最多correct/popular。它是存储库模式?服务模式?

另一个难点: 用户表单:姓名、电子邮件、邮政编码、城市、街道。我想以一种形式创建两个模型:用户和地址。我该如何解决?我想通了:

// UserController store(UserRequest $request)
$address = $addressRepo->create($request->validated());
$user = $userRepo->create($request->validated(), $address)

我想知道的问题:

我很困惑什么才是最正确的。

如果您的应用只是一个 CRUD,请不要为存储库模式等而烦恼。只需使用 MVC 模式。

如果你真的需要使用存储库模式,你也可以使用它,依赖注入。

您还可以创建一个 UserService,将 $request->validated() 数据发送到您的服务。

您应该将您的存储库注入该服务。您的服务应该保持您的逻辑,存储库应该进行存储更新等。

您的控制器:

UserService::createUser($request->validated());

您的服务:

...
$userRepository->createUser(...);
$addressRepository->createAddres(...);