【问题标题】:Laravel 5 input old is emptyLaravel 5输入旧为空
【发布时间】:2021-11-12 13:12:43
【问题描述】:

我的路线在这里

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()}} 函数返回空值。
编辑
我拿了

NotFoundHttpException in RouteCollection.php line 145:

【问题讨论】:

  • 您的会话工作正常吗?
  • 是的,我的会话工作正常
  • 您确定输入已发送?我在&lt;form&gt; 中看不到任何提交按钮?
  • 我测试了我的表单,它可以工作。我有提交按钮
  • 是的 - 但在你的控制器中 - 在重定向之前 - 如果你这样做 dd(Input::all()) - 用户名是否填写在那里?

标签: php laravel laravel-5


【解决方案1】:

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

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

表单内没有“提交”按钮。如果您在表单之外提交 - 则不会包含 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();

【讨论】:

  • 我应该使用 redirect() 吗? redirect() 返回错误(RouteCollection.php 第 145 行中的 NotFoundHttpException :)。如果我使用 view('sign_up') 它不起作用:(。我添加了提交按钮
  • 发布您的完整控制器
  • 我的控制器laravel.io/bin/9vR4R我的路线laravel.io/bin/Delwy我的意见laravel.io/bin/PXxl3
【解决方案2】:

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

     $request->flash();

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

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

【讨论】:

  • ->withInput() 自动添加 Request::flash() / $request->flash()
【解决方案3】:
            <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>

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

【讨论】:

    【解决方案4】:

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

    【讨论】:

    • 添加一个代码 sn-p 来详细解释答案会很棒
    【解决方案5】:

    我的问题是由输入中的“数据预填充”引起的。一旦我删除它,它就起作用了。

    【讨论】:

      【解决方案6】:

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

      【讨论】:

      • 应该使用return redirect('signUp')->withInput(); ?.如果我使用 return view('signUp') 你的代码不起作用。如果我使用重定向功能。我采取了路线错误。
      猜你喜欢
      • 1970-01-01
      • 2015-09-19
      • 2019-12-23
      • 2016-06-08
      • 2014-05-28
      • 2013-10-13
      • 2015-06-26
      • 2016-05-14
      • 2015-05-26
      相关资源
      最近更新 更多