PHP - Laravel の withInput() と withErrors() は空です


POST リクエストを介してデータをコントローラに送信する laravel フォームがあります...

public function store()
{
    $result = Validator::make(request() -> all(), $this -> rules);

    if ($result -> fails()) 
    { 
        return back() -> withInput() -> withErrors($result); 
    }
}

しかし、再びリダイレクトされると、「古い」ヘルパー メソッドを介して入力データにアクセスすると、$errors からデータを読み取る場合と同様に、何も返されません。

セッション データが失われていると思います (おそらく二次リダイレクトが原因でしょうか?)。

ルーティング ファイルをクラフトで確認したところ、Web ミドルウェアは 1 回しか実行されず、ルートはありません。 drrio セッション データベースも使用しています。

アイデアはありますか? Laravel 5.2.39 を使用しています



------------に答える------------

最近、このエラーを見つけて解決策を見つけました... この中にルートを入れる代わりに

Route::group(['middleware' => ['web']], function () { });

削除するだけで問題なく動作します。 「ウェブ」ミドルウェアが 2 回読み込まれているようです。



------------に答える------------

使用 return redirect()->back()->withInput()->withErrors($result);



------------に答える------------

これを試して、エラーのあるエントリを返します

$validator = Validator::make($request->all(), $rules);

if ($validator->fails()) {
    // fails, then return false
    return redirect()->back()->withErrors($validator->messages())->withInput($request->all());
}


------------に答える------------

この問題は Bootstrap Validator の使用に関連していることが判明しました。原因を突き止める必要がありますが、問題は解決しているようです...

タグ:

関連記事:

文字列を Java という単語のサブパートではない条件に置き換えます

lvm - Ubuntu で iSCSI SR から XenServer VHD をマウントするにはどうすればよいですか?