Laravel-控制器在使用Redirect :: to返回时未设置一些变量

时间:2019-05-04 22:01:13

标签: php laravel laravel-5.8

在我的控制器中,我验证输入字段,如果任何验证失败,我想返回到表单并重新填写用户输入的先前值(如果还有其他更简便的方法,请告诉我)。但是,这就是我正在做的事情:

Controller.php:

public function store(Request $request, AnexoController $anexoController)
{
    $validator = Validator::make(
        $request->all(), 
        $rules, 
        $messages
    );

    if($validator->fails())
    {
        return Redirect::to($request->headers->get('referer'))
         ->withErrors($validator)
         ->withReq($request->all());
    }

    // continues the function...
}

在view.blade.php:

<input type="text" 
    maxlength="256" 
    id="text-input" 
    name="id" 
    placeholder="Código" 
    class="form-control" 
    @if(isset($req)) value="{{$req->id}}"
    @else value="$REQ VARIABLE NOT SET"
    @endif
    required>

当我对其进行测试时,字段id的值设置为“ $ REQ VARIABLE NOT SET”,但是设置了$errors变量中的$validator。那么,为什么没有在这种情况下设置变量$req?预先感谢。

1 个答案:

答案 0 :(得分:1)

使用此

append

它将自动返回所有错误和输入的表单页面

在表单中,您将不必在旧输入的输入值中添加帮助器

$request->validate([
  //rules
]);

请参见https://laravel.com/docs/5.8/validationhttps://laravel.com/docs/5.8/helpers