【问题标题】:Laravel 5.2 validation redirect with old inputLaravel 5.2 验证重定向与旧输入
【发布时间】:2016-06-12 01:38:05
【问题描述】:

参考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

【问题讨论】:

  • 你的问题很模糊。重定向示例是什么意思? “将他们的验证与控制器放在一起”是什么意思?
  • 我试图在我的问题中澄清它,请看一下,如果有任何不清楚的地方,请告诉我。
  • 检查值是否存在。我不知道它在 Laravel 中是如何完成的,但它应该看起来像这样 if(old('first_name')!=""){echo old('first_name');}else{}
  • @user3284463 谢谢,但我不知道在哪里将我的 first_name 变量传回。正如我在问题中所说,我看到人们这样做 return Redirect::to('/')-&gt;withInput(); 但我不知道我的案例。
  • 这是多步骤表单还是编辑表单?

标签: php validation laravel-5.2


【解决方案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

【讨论】:

    【解决方案2】:

    正如错误所说,使用未定义的常量。您的错误变量不在视图范围内。检查你做错了什么。

    使用Docs 进一步阅读。

    【讨论】:

    • 我认为我做错的是没有将旧输入传回,但由于应用程序会自动执行,我不知道在哪里传递它。
    【解决方案3】:

    您可以通过首先检查 POST 或 GET 数组中的值是否可用来做到这一点。如果它在 POST 或 GET 数组中可用,则在输入的 value 属性中回显它。

    您的输入字段将如下所示:

    <input type="text" name="first_name" value="if (Input::has('first_name')){ @echo Input::get('first_name');}" \>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-07-25
      • 1970-01-01
      • 2016-06-02
      • 2016-08-12
      • 2016-08-14
      • 1970-01-01
      • 1970-01-01
      • 2016-05-04
      相关资源
      最近更新 更多