简体   繁体   English

如何在Laravel 5.2中将输入值传递给Request验证类?

[英]How to pass input value to Request validation class in Laravel 5.2?

I have one controller and one Form Request Validation class: app\\Http\\Controllers\\GuestController.php and app\\Http\\Requests\\ItemValidation.php . 我有一个控制器和一个Form Request Validation类: app\\Http\\Controllers\\GuestController.phpapp\\Http\\Requests\\ItemValidation.php In GuestController.php I use storeItem(ItemValidation $request) method to store item data which comes from <form> . GuestController.php我使用storeItem(ItemValidation $request)方法存储来自<form>项目数据。

And in ItemValidation.php request class I redirect back to the form with following method if validation fails. 如果验证失败,则在ItemValidation.php请求类中,使用以下方法将我重定向回表单。

public function response(array $errors){
        return Redirect::back()->withErrors($errors)->withInput()->with('type', '2');
}

The main thing I want is to pass value from <form> (which is entered by user in form) to response method. 我想要的主要事情是将值从<form> (由用户以form输入)传递给response方法。 I tried with following but it did not work: 我尝试了以下操作,但没有成功:

public function response(array $errors, Request $request){
            return Redirect::back()->withErrors($errors)->withInput()->with('type', '2')->with('sub_menu_id',$request->sub_menu_id);
    }

->withInput() flashes the previous input to the session. ->withInput()将先前的输入闪烁到会话中。

In your form view, you should use the old() helper to repopulate the value if a previous input exists. 在表单视图中,如果存在先前的输入,则应使用old()帮助器重新填充该值。

Blade: 刀:

<input type="text" name="username" value="{{ old('username') }}">

Plain PHP: 普通的PHP:

<input type="text" name="username" value="<?= e(old('username')) ?>">

If there is no previous input, it returns null, which echoes as an empty string. 如果没有先前的输入,则返回null,它作为空字符串回显。


Documentation: https://laravel.com/docs/5.3/requests#old-input 文档: https : //laravel.com/docs/5.3/requests#old-input

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM