Laravel 5 输入旧为空

Laravel 5 input old is empty

我的路线在这里

Route::get('sign-up', ['as' => 'signUp', 'uses' => 'UserController@signUpGet']);
Route::post('sign-up', ['as' => 'signUpPost', 'uses' => 'UserController@signUpPost']);

控制器

return redirect('signUp')->withInput();

并查看

    <form role="form" method="POST" action="{{route('signUpPost')}}"> 
        <input type="text" class="form-control" name="username" value="{{ old('username') }}">
</form>

{{old()}}函数return空值。
编辑
我拍了

NotFoundHttpException in RouteCollection.php line 145:

你可以试试这个:{{ Input::old('username') }}.

你的问题看起来你实际上并没有首先提交用户名:

<form role="form" method="POST" action="{{route('signUpPost')}}"> 
        <input type="text" class="form-control" name="username" value="{{ old('username') }}">
</form>

表单内没有 'submit' 按钮。如果您在表单之外提交 - 那么 username 将不会被包含在内。

在表单中添加提交按钮 - 然后重试

<form role="form" method="POST" action="{{route('signUpPost')}}"> 
        <input type="text" class="form-control" name="username" value="{{ old('username') }}">
        <input type="submit" value="Submit">
</form>

编辑 - 你的控制器也有问题。应该是这样的:

 return redirect()->route('signUp')->withInput();

您所缺少的只是将输入闪烁到会话中。这是为了在下一次请求期间可用。

     $request->flash();

在调用查看表单之前执行此操作。

来源:http://laravel.com/docs/5.1/requests#old-input

我的问题是由输入中的“data-prefill”引起的。一旦我删除它,它就起作用了。

            <div class="form-group @if($errors->first('username')) has-error @endif">
              <label for="username" class="rtl">Enter user name </label>
              <input type="text" name="username" class="form-control rtl basic-usage" id="username" placeholder="Enter user name" value="{!! old('username') !!}">
              <span class="help-block required">{{$errors->first('username')}}</span>
            </div>

上面的表单字段将显示输入的旧值。 将显示验证错误(您必须单独指定错误。) 有一个占位符。 bootstrap 看起来更好。(添加 bootstrap)

注册视图中的名称应与 RegisterController 文件中的 create() 和 validate() 方法中的键相对应。