php - Laravel - 不同控制器的一种形式
问题描述
我有一个多步骤注册表单,它将以相同的提交将数据发送到三个不同的资源控制器(以存储功能),等等模型。
表单控制器:
class Registration extends Controller
{
public function index() {
return view('admin.registration');
}
public function store(Request $r) {
Controller1::store($r->step1)
Controller2::store($r->step2)
Controller3::store($r->step3)
}
}
怎么可能是一个好习惯?
解决方案
不需要调用 3 个不同的控制器,而是应该与 3 个不同的模型进行交互。从您的代码中,我假设您将表单提交到Registration@store
. 这是代码的方式
假设您有 3 步表格
- 第一步:获取用户邮箱、手机密码
- Step2:用户地址和国家
- 第三步:用户公司简介
提交表单后,它会点击该store
方法。我还假设您有 3 张桌子和3 modal
ie User, Profile, CompanyProfile
。
如果是这样的话,我的方法是这样的
public function store(Request $request) {
$data['name'] = $request->get('name');
$data['email'] = $request->get('email');
....................................
....................................
$user = User:create($data) //This will create your user modal instance
//Now upload the 2nd steps data
$step2['user_id'] = $user->id;
$step2['locality'] = $request->get('locality');
.....................................
....................................
Profile::create($step2);
$step3['user_id'] = $user->id;
$step3['locality'] = $request->get('locality');
.....................................
....................................
CompanyProfile::create($step3);
return redirect('/home') //or whereever you want to redirect your user
}
推荐阅读
- reactjs - 为 React Native 组合/嵌套/实现 Stack Navigator 和 Tab Navigator React Navigation 组件
- python - 我正在尝试在 python 的帐户页面上显示来自 Azure AD 的照片
- c - Do while 语句中的问题不断循环
- protobuf-net.grpc - 如何在反序列化期间检测环境
- eclipse - Tomcat 不加载 Maven 提供的依赖项
- java - Java 应用程序暂停执行,直到在 Linux RHEL 6 上“单击”控制台窗口
- javascript - 如何使用 JavaScript 计算字符串中不同术语出现的次数?
- c# - 创建命名管道时出错:错误代码 -1
- javascript - AngularJS - 如何在点击时迭代数组
- excel - 是否应该以某种方式初始化 VBA Excel 中的应用程序?