我尝试执行两个步骤,第一个表单数据存储在会话中,第二个表单数据存储在会话中,我尝试用步骤1中的数据保存数据。所有查询都会运行,但laravel只存储字段输入。我能做什么?我的第二个表单数据存储在数据库中,但我的第一个表单数据为空值。这是我的控制器文件
<?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');
}
}发布于 2019-11-24 22:45:56
我也不明白为什么那不管用。尽管据我所知,你实际上创造了两次。但我想一种不同的方法可以:
1.)不要在会话中存储AdmissionForm的整个实例,只存储经过验证的数据
2.)然后在第二种情况下存储时添加,合并这两个数组并将它们保存为一个:
/**
* 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');
} https://stackoverflow.com/questions/59018638
复制相似问题