Laravel 5.2验证重定向与旧输入

时间:2016-02-29 05:11:36

标签: php validation laravel-5.2

参考this stockoverflow question

我使用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

3 个答案:

答案 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.

Another relevant post

答案 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');}" \>