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 をマウントするにはどうすればよいですか?