web-dev-qa-db-ja.com

Laravelの古い入力でリダイレクトするにはどうすればよいですか?

ログインモーダルがあります。ユーザーのログインが認証に失敗した場合、このモーダルにリダイレクトして戻したい:

  • エラーメッセージ
  • および古い入力。

enter image description here


コントローラ

// if Auth Fail 
return Redirect::to('/')
                ->with('error','Username/Password Wrong')
                ->withInput(Request::except('password'))
                ->withErrors($validator);

{!! Form::open(array('url' => '/', 'class' => 'login-form')) !!}

  <div class="form-group">
    <label for="username">Username</label>
    <input type="text" class="form-control"  id="username" name="username" placeholder="Enter Username" required>
  </div>
  <div class="form-group">
    <label for="password">Password</label>
    <input type="password" class="form-control" id="password" name="password" placeholder="Enter Password" required>
  </div>
  <button type="submit" class="btn btn-primary">Login</button>

{!! Form::close() !!}

私の画像の一部として見ることができるように、エラーメッセージが表示されるように見えますが、ユーザー名の古い入力は移入していないようです。

誰かが私を修正してもらえますか?何もするのを忘れましたか? Laravelこのようなことを達成するための最も効率的な方法は何ですか?

14
kyo

次のように最後の入力にアクセスできます。

$username = Request::old('username');

@ Arian Acosta で指摘されているように、単純に

<input type="text" ... value="{{ old('username') }}" ... >

docs で説明されているように、ブレードビューではより便利です。


コントローラーにはいくつかの可能性があります。

->withInput(Request::except('password'))の代わりに

行う:

a)Input::flash();

または:

b)Input::flashExcept('password');

そして、次のようにビューにリダイレクトします:

a)->withInput(Input::except('password'));

それぞれで:

b)->withInput();

旧入力に関するドキュメント さらに読むには...

26
toesslab

入力要素の値が欠落しています...

value="{{ Input::get ('username', '') }}"
2
Collin James

私のプロジェクトでは、別の方法が必要でした:

以前のデータを取得するために、検証戻りでGET要求を突き出します。

   // if the validator fails, redirect back to the form
    if ($validator->fails()) {
        //let's send some data back (Orlando,Florida):
        return Redirect::to('auth/register?city=Orlando&State=Florida')
            ->withErrors($validator)


    }else{
     //validation success
    }
0
Petro