Model view controller Laravel-一个控制器中的多个模型
我有以下数据库结构:Model view controller Laravel-一个控制器中的多个模型,model-view-controller,laravel-5,controllers,Model View Controller,Laravel 5,Controllers,我有以下数据库结构: 查询 身份证 小工具总数 总金额 客户识别码 客户 身份证 名字 姓 在创建查询时,您可以使用该表单将客户详细信息输入到该部分,该部分将首先使用或创建进行存储,然后获取id,以便链接到查询到客户 现在的问题是,这一切都是在客户控制器中的存储方法中完成的,如下所示: public function store(Request $request) { $rules = array( "first_name" => "required",
查询
身份证
小工具总数
总金额
客户识别码
客户
身份证
名字
姓
在创建查询时,您可以使用该表单将客户详细信息输入到该部分,该部分将首先使用或创建进行存储,然后获取id
,以便链接到查询
到客户
现在的问题是,这一切都是在客户
控制器中的存储
方法中完成的,如下所示:
public function store(Request $request)
{
$rules = array(
"first_name" => "required",
"last_name" => "required",
"total_widgets" => "required"
);
// Handle validation
// Create customer
$customer = \App\Customers::firstOrCreate(['first_name' => $request-
>get('first_name')]);
$enquiry = new \App\Enquiries();
$enquiry->customer_id = $customer->id;
$enquiry->save();
}
这样做的问题是它没有被分离出来,如果创建客户的过程发生了变化,那么我需要多次改变。(每次我有一个需要客户的部门时)
有更好的方法吗?例如,是否应单独创建客户,然后将id传递到$request
?另一种方法是:
1) 在查询表中,添加名为“添加新客户”的按钮
2) 当您单击此按钮时,将显示一个模式,然后单击提交填写详细信息
3) 单击submit,向Customercontroller发出ajax调用并插入数据,然后返回最后插入的id
4) 现在您可以在Inquirey表单的下拉框中看到新用户(将有一些用于选择用户的下拉框),只需选择它,然后按submit
5) 它将传递给Inquirey控制器并存储
希望这对你有帮助