我使用php artisan make:request ApplicationFormRequest
public function rules() {
return ['first_name' => 'required']
}
我也有一个控制器,
public function store(ApplicationFormRequest $request){
//empty
}
我在使用
的stackoverflow上看到了一个例子return Redirect::to('/')->withInput();
他们似乎将他们的验证与控制器放在一起,但我不知道如何以这种方式进行。
我会把它放在哪里?即使验证失败,如何检索旧输入?
编辑你看到我的控制器是空的,它会自动使用我在ApplicationFormRequest设置的规则进行验证。当它失败时,它会自动重定向到提交输入错误的视图@foreach ($errors->all() as $error)
<li class="alert label">{{$error}}</li>
@endforeach
但我无法用刚提交的输入用户填充输入,我尝试
<input type="text" value="{{ old('first_name') }}" \>
但是这给了我错误Use of undefined constant
答案 0 :(得分:1)
在Laravel 5.2中,如果视图表单没有填充从自定义Request
类发回的旧数据,请执行以下操作:
1)将与请求相关的所有路由放在路由组中,该路由组应包含在5.2
中Route::group(['middleware' => ['web']], function () {
// routes here
});
2)运行php artisan key:generate
编辑:此修补程序可能不适用于5.2以外的版本。
现金:
Laravel - Session store not set on request
No supported encrypter found. The cipher and / or key length are invalid.
答案 1 :(得分:0)
因为错误说使用了未定义的常量。您的错误变量不在视图范围内。检查你做错了什么。
使用Docs进一步阅读。
答案 2 :(得分:0)
您可以通过首先检查POST或GET数组中是否有值来执行此操作。如果它在POST或GET数组中可用,则在输入的value
属性中回显它。
您的输入字段如下所示:
<input type="text" name="first_name" value="if (Input::has('first_name')){ @echo Input::get('first_name');}" \>