首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我尝试在包含会话数据的数组上调用成员函数save()

我尝试在包含会话数据的数组上调用成员函数save()
EN

Stack Overflow用户
提问于 2019-11-24 22:20:50
回答 1查看 282关注 0票数 0

我尝试执行两个步骤,第一个表单数据存储在会话中,第二个表单数据存储在会话中,我尝试用步骤1中的数据保存数据。所有查询都会运行,但laravel只存储字段输入。我能做什么?我的第二个表单数据存储在数据库中,但我的第一个表单数据为空值。这是我的控制器文件

代码语言:javascript
运行
复制
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Admissionform;
class AdmissionformController extends Controller
{

    /**
     * Show the step 1 Form for creating a new product.
     *
     * @return \Illuminate\Http\Response
     */
    public function createStep2(Request $request)
    {
        $admissionform = $request->session()->get('admissionform');
        return view('front_office_desk.create-step2',compact('admissionform', $admissionform));
    }
    /**
     * Show the step 1 Form for creating a new product.
     *
     * @return \Illuminate\Http\Response
     */
    public function createStep3(Request $request)
    {
        return view('front_office_desk.create-step3');
    }
    /**
     * Post Request to store step1 info in session
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function postCreateStep1(Request $request)
    {
        $request->validate([
            'name' => 'required',
            'dateOfBirth' => 'required',
            'contactNumber1' => 'required',
            'contactNumber2' => 'required',
            'email' => 'required',
            'reference' => 'required',
            'address' => 'required',
            'purpose_of_visit' => 'required',
            'intend_to_apply_for' => 'required',
            'any_applied_file_for_visa' => 'required',
            'acknowledgement' => 'required',
        ]);
        if(empty($request->session()->get('admissionform'))){
            $admissionform = new Admissionform();
            $admissionform->fill($validatedData);
            $request->session()->put('admissionform', $admissionform);
        }
        return redirect('/front_office_desk/create-step2')
                        ->with('success','Product updated successfully');
    }   
    public function postCreateStep2(Request $request)
{
    $request->validate([
        'specialization' => 'required',
        '12institute_name' => 'required',
        '12board_name' => 'required',
        '12passing_date' => 'required',
        '12course_type' => 'required',
        '12marks' => 'required',
    ]);
    $admissionform = $request->session()->get('admissionform');
    $admissionform = $request->all();
    $admissionform->save();

     return redirect('/front_office_desk/create-step3')
                    ->with('success','Product updated successfully');
}                 
}
EN

Stack Overflow用户

回答已采纳

发布于 2019-11-24 22:45:56

我也不明白为什么那不管用。尽管据我所知,你实际上创造了两次。但我想一种不同的方法可以:

1.)不要在会话中存储AdmissionForm的整个实例,只存储经过验证的数据

2.)然后在第二种情况下存储时添加,合并这两个数组并将它们保存为一个:

代码语言:javascript
运行
复制
/**
 * Post Request to store step1 info in session
 *
 * @param  \Illuminate\Http\Request  $request
 * @return \Illuminate\Http\Response
 */
public function postCreateStep1(Request $request)
{
    $validatedData = $request->validate([
        'name' => 'required',
        'dateOfBirth' => 'required',
        'contactNumber1' => 'required',
        'contactNumber2' => 'required',
        'email' => 'required',
        'reference' => 'required',
        'address' => 'required',
        'purpose_of_visit' => 'required',
        'intend_to_apply_for' => 'required',
        'any_applied_file_for_visa' => 'required',
        'acknowledgement' => 'required',
    ]);
    if(empty($request->session()->get('admissionform'))){

        $request->session()->put('admissionform',  $validatedData );

    }
    return redirect('/front_office_desk/create-step2')
                    ->with('success','Product updated successfully');
}   
public function postCreateStep2(Request $request)
{
     $request->validate([
        'specialization' => 'required',
        '12institute_name' => 'required',
        '12board_name' => 'required',
        '12passing_date' => 'required',
        '12course_type' => 'required',
        '12marks' => 'required',
    ]);
     $admissionform = $request->session()->get('admissionform');

     $data = array_merge(request()->all(), $admissionform));

     Admissionform::create($data);

     return redirect('/front_office_desk/create-step3')
                    ->with('success','Product updated successfully');
}  
票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59018638

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档