我有两(2)页。一个是创建页面,另一个是确认页面。创建页面有一个表单和一个“继续确认”按钮,该按钮将重定向到确认页面。确认页面应显示“创建”页面中的所有输入,然后用户可以在检查完所有输入值后立即提交。
控制器:
public function create()
{
return ('pages.create');
}
public function confirmCreate()
{
$value = Input::all();
Session::flash('value', $value);
return view('pages.confirm-create')->with('value', $value);
}
路线:
Route::get('create', 'MyController@create')->name('create');
Route::post('confirm-create', 'MyController@confirmCreate')->name('confirm-create');
Route::put('store', 'MyController@store')->name('store');
创建页面视图:
{{ Form::open(array('url' => 'confirm-create',
'method' => 'POST',
'class' => 'form-horizontal')) }}
<div class="form-group{{ $errors->has('name') ? ' has-error' : '' }}">
<label class="col-md-4 control-label required">Name</label>
<div class="col-md-6">
<input id="name" placeholder="Name" type="text" class="form-control" name="name" value="{{ old('name) }}" required autofocus>
@if ($errors->has('name'))
<span class="help-block">
<strong>{{ $errors->first('name') }}</strong>
</span>
@endif
</div>
</div>
<div class="form-group{{ $errors->has('contactNumber') ? ' has-error' : '' }}">
<label class="col-md-4 control-label required">Contact Number</label>
<div class="col-md-6">
<input id="contactNumber" placeholder="Contact Number" type="text" class="form-control" name="contactNumber" value="{{ old('contactNumber) }}" required autofocus>
@if ($errors->has('contactNumber'))
<span class="help-block">
<strong>{{ $errors->first('contactNumber') }}</strong>
</span>
@endif
</div>
</div>
<div class="form-group">
<div class="col-md-6 col-md-offset-6">
<button type="submit" class="btn btn-primary">
Proceed to Confirm
</button>
</div>
</div>
{{ Form::close() }}
确认页面查看:
{{ Form::open(array('url' => 'pages',
'method' => 'POST',
'class' => 'form-horizontal')) }}
<div class="form-group{{ $errors->has('name') ? ' has-error' : '' }}">
<label class="col-md-4 control-label required">Name</label>
<div class="col-md-6">
<label class="control-label">{{ old('name') }}</label>
@if ($errors->has('name'))
<span class="help-block">
<strong>{{ $errors->first('name') }}</strong>
</span>
@endif
</div>
</div>
<div class="form-group{{ $errors->has('contactNumber') ? ' has-error' : '' }}">
<label class="col-md-4 control-label required">Contact Number</label>
<div class="col-md-6">
<label class="control-label">{{ old('contactNumber') }}</label>
@if ($errors->has('contactNumber'))
<span class="help-block">
<strong>{{ $errors->first('contactNumber') }}</strong>
</span>
@endif
</div>
</div>
<div class="form-group">
<div class="col-md-6 col-md-offset-6">
<button type="submit" class="btn btn-primary">
Submit
</button>
</div>
</div>
{{ Form::close() }}
我似乎无法在我的“创建”页面中显示数据(点击“继续确认”按钮后)到我的“确认”页面。我的控制器,路由和视图(创建和确认页面)应该如何?发送帮助。谢谢!
答案 0 :(得分:0)
您将value
传递给pages.confirm-create
视图但不使用它。
用{{ old('contactNumber') }}
或{{ $value['contactNumber'] }}
代替{{ $value['contactNumber'] }}
。
使用old()
在验证时很有用,它从先前的请求中获取值,而不是从传递给视图的值中获取值。
答案 1 :(得分:0)
您在Confirm Page
视图中犯了一个小错误。
旧输入不能像这样使用。看看文档:
https://laravel.com/docs/5.3/requests#old-input
其中声明:
Laravel允许您在下一个请求期间保留一个请求的输入。在检测到验证错误后,此功能对于重新填充表单特别有用。
它仅用于发生验证问题的相同表单。
您还在使用:
<label class="control-label">{{ old('name') }}</label>
而不是输入字段。
<input id="name" placeholder="Name" type="text" class="form-control" name="name" value="{{ $value['name'] }}" required autofocus>
您需要使用$value['name']
代替old('name')
。