在try 将参数从一个控制器传递到另一个控制器时,我遇到了缺少参数的问题.参数是$id
,因此数据最初是从details blade.php中的POST方法进入函数postCreateStepOne
的,但是,我想将数据传递到一个新的视图中,然后返回
Redirect()->;route(‘details.tenant.step.two’)->;with([‘id’=>;$id] );}
这就是错误发生的地方.但是,如果我跳过它进入一个新的路径,并直接返回到带有COMPACT参数的视图中,它就可以很好地工作.例如,
Return view(‘Docent.DetailsStep-Two’,mini(‘id’,‘Property’));
然而,我更喜欢一个新的URL,因为我正在使用Laravel做多步表单.
web.php个
Route::get('/document/details/viewing/{id}', 'ViewDetails')->name('details.tenant');
Route::post('/document/details/viewing/{id}', 'postCreateStepOne')->name('post.step-one');
Route::get('/document/details/viewing/step-2/{id}', 'ViewDetailsStep2')->name('details.tenant.step.two');
TenanatController.php个
public function viewDetails($id){
$view = Properties::findOrFail($id);
return view('document.details', compact('view'));
}
public function ViewDetailsStep2(Request $request, $id){
$view = Properties::findOrFail($id);
$property = $request->session()->get('property');
return view('document.details-step-two', compact('view', 'property'));
}
public function postCreateStepOne($id, Request $request)
{
$validatedData = $request->validate([
'property-name' => 'required',
]);
if(empty($request->session()->get('property'))){
$property = new Tenancy();
$property->fill($validatedData);
$request->session()->put('property', $property);
}else{
$property = $request->session()->get('property');
$property->fill($validatedData);
$request->session()->put('property', $property);
}
return redirect()->route('details.tenant.step.two')->with( ['id' => $id] );
}
details.blade.php个
<form action="{{ route('post.step-one', $view->id) }}" method="POST">
@csrf
<div class="card-body">
<div class="form-group">
<label for="title">Property Name:</label>
<input type="text" value="" class="form-control" id="property-name" name="property-name">
</div>
</div>
<div class="card-footer text-right">
<button type="submit" class="btn btn-primary">Next</button>
</div>
</form>