【问题标题】:Using Request and Response in Laravel在 Laravel 中使用请求和响应
【发布时间】:2014-12-31 09:11:45
【问题描述】:

这是我的表单

{{ Form::open(array('url' => 'register', 'class' => 'form-signin')) }}

// form username , password .. fields here
{{ Form::close() }}

而且路线是

Route::post('register', 'RegisterController@registeruser');

控制器是

public function registeruser()
    {

    //validation

  return Redirect::to('/')->withErrors($validator); // main

    }

因为,我正在被重定向,所以我不会在表单中填写任何字段。

我知道我应该为此使用请求和响应。

我尝试了以下响应,即使这是一个可怕的尝试。

return Response::view('home')->header('utf-8', $messages);

但在执行上述操作时,即使页面重新加载,表单中填写的值也会消失。我怎样才能在没有值消失的情况下通过错误?

有没有办法按照输入的方式填写表单中的字段?

【问题讨论】:

    标签: php laravel laravel-4 laravel-routing http-redirect


    【解决方案1】:

    你需要使用->withInput()

    return Redirect::to('/')->withInput()->withErrors($validator); // main
    

    【讨论】:

    • 谢谢。同时我使用, $input = Input::all();和 var_dump($input);它显示数组(0)并且表单值消失了我该如何解决这个问题?
    • 你需要使用Input::old()来获取他们使用的旧值
    • 谢谢我将旧值作为数组获取,我如何获取特定变量,即名字,我试过 echo $input->('firstname');但我以错误结束
    • 我觉得你可以做到Input::old('firstname')?
    • 太棒了,接受你的回答!!要在用户字段中显示,我正在使用 isset display Input::old('firstname') else empty 像这样检查 php,但这是一个好的过程吗?
    【解决方案2】:

    你可以使用 Input::flash()

    public function registeruser()
    {
        //validation
        Input::flash();
    
        return Redirect::to('/')->withErrors($validator); // main
    }
    

    然后在处理重定向的控制器方法中,您可以使用 Input::old() 访问旧输入。使用 Input::all() 只会返回当前请求的数据。

    您还可以在返回行上使用 ->withInput() 链接方法。

    在此处了解更多信息http://laravel.com/docs/4.2/requests

    【讨论】:

      【解决方案3】:

      假设您有这样的验证:

      $validation = Validator::make($input, $rules);
      

      那么你需要这样做:

      if( $validation->fails() )
      {
          return Redirect::back()->withInput()->withErrors($validator->messages());
      }
      

      注意Redirect::back(),它允许您返回表单并使用用户输入自动填写表单

      【讨论】:

      • 谢谢,它允许我返回表单,但输入值消失了,我正在使用 Input:old() 正如 Shift Exchange 建议的那样,谢谢
      • 如果你的路由被声明为资源,你不需要使用 Input::old,Laravel 会为你做。
      • Glupponi : 如何将路由声明为资源?
      猜你喜欢
      • 1970-01-01
      • 2019-09-08
      • 2014-06-20
      • 2020-01-09
      • 1970-01-01
      • 2021-01-07
      • 1970-01-01
      • 2019-05-09
      • 2017-02-22
      相关资源
      最近更新 更多