Laravelフォームの検証の問題(セッションサイズの制限?)

地図

検証する必要のある入力が約30個あるフォームがあります。これは非常に新鮮なLaravelのインストールであり、コントローラーで検証を処理します。これは単純なプロジェクトであり、すべてが基本的にLaravelのドキュメントからのものであるため、コード自体に関してはあまり説明することはありません。

この問題は、失敗するフィールドの数やルールの量と関係がありますが、頭を悩ませることはできません。

入力フィールドに入力せずにフォームを送信すると、検証が失敗し、フォームにリダイレクトされますが、検証エラーや古い入力データはありません。1つの入力を入力してから送信すると、エラーや入力した入力の古い値なしでリダイレクトされます。

しかしながら、

  1. 7つの入力フィールドに入力して送信すると、すべてが機能します。リダイレクト後、これらの7つのフィールドには古い値があり、残りにはエラーメッセージがあります。
  2. 検証ルール配列から7つのルールをコメントアウトすると、明らかに上記と同じように機能します。
  3. を使用しValidator::make、手動でリダイレクトして使用する->withErrors($validator)、フォームにエラーが表示されます。同様->withInput()に、リダイレクトで使用すると、フォームにはすべての古いデータが含まれます。ただし、これらの両方を一緒に使用すると、エラーや古いデータがフォームに返されることはありません。

この問題が発生した場合、デバッグバーショーarray:2 [ "old" => [] "new" => [] ]のため_flash、セッションは持っていないようですerrorsか、_old_inputすべてで定義されました。

これは100%一貫しているので、どのルールやフィールドに入力したりコメントしたりしても、間違いなくそれを引き起こす量です。

それは両方$request->validate($myRules);同じように起こります$v = Validator::make($request->all(), $myRules);

この種の振る舞いに関して、私はグーグルから多くを見つけていません。念のためfileセッションドライバを変更しましたが、役に立ちませんでした。

私は現在XAMPで実行しています。memory_limit=512M

編集

私の最終的な検証ロジックには、次のようないくつかの「if-situations」が含まれます。

$v->sometimes('description', 'required|max:500', function ($input){
    return $input->publish == 1;
});

そして今、私がこれらの状況を利用したとき、私はそれらが実際に私の問題の大ざっぱな「限界」を減らすことに気づきました。したがって、この単一の時々条件を追加しdescription、メインルール配列からルールを削除することで、すべてを機能させるために6つのフィールドに入力するだけで済みます。

結局、フォームには入力に必要な属性が設定されているはずなので、この問題は実際のシナリオでは発生しませんが、これを引き起こす何かがあるはずであり、後で何か他のものを引き起こす可能性があるため、それでも私は多くの迷惑をかけます。

Edit2

22個の入力を含む新しいフォームを作成し、ロジックでf1、f2、f3などの名前を付けました。これは完全に機能します。

しかし、f1、f2long、f3、f4evenlongerなどの少し長い名前でそれらのいくつかを更新すると、突然問題が再発しました。それから私は再びいくつかの文字を削除し、それが時々機能する場所と機能しない場所を見つけました。

入力フィールドの名前が合計57文字の場合、すべてが100%機能します。いくつかの文字を追加し、この数が63になると、不安定になり、機能する場合もありますが、機能しない場合もあります。合計70文字以上の場合、機能しません。

明らかに何かがそれを制限していますが、何ですか?

Edit3

ええと、それはセッションサイズの制限です..くそーそれを実現するのに長い時間がかかりました。

「ファイル」をセッションドライバとして定義しましたが、本来あるべき場所にファイルが生成されないため、「cookie」を使用しているようです。Win10ユーザーにストレージフォルダー(およびサブフォルダー)にファイルを書き込む権限を与えましたが、それでも何も生成されません。

地図

結局、セッションデータがCookieに収まらなかったために発生しました。長いデバッグの後(問題は完全に他の場所にあると確信していました)、セッションドライバーをfile内部に変更しましsession.phpたが、更新するのを忘れました.env

これで、セッションドライバを使用fileしたりdatabase、セッションドライバとして使用したりすること、すべてが機能するようになりました

Collected from the Internet

Please contact javaer1[email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

C#WindowsフォームComboBox OwnerDrawVariableフォント形式サイズの問題

データフレームパーティションの最大サイズの制限

Django Restフレームワークは、ページネーションの制限とオフセットを検証します

Laravel-PHPの最大アップロードサイズ制限を超えたときにファイルサイズを検証します

Razorフォームでのチェックボックス検証の問題

Laravelセッション/ SessionIDの問題

フォーム制御の非同期検証の問題

ComboBoxOwnerDrawVariableフォントフォーマットサイズの問題

フォーム送信時のファイルサイズ制限

.NETフォームサイズのスケーリングの問題

フォームのセクションの検証

ネストされたフォーム要素ファイルサイズの制限(レガシーコード)

HTMLフォーム検証の問題

PHPリモートMySQLデータフェッチのサイズ制限の問題

プロセスイメージのさまざまなセクションのサイズ制限

フォーム検証Laravelセッションデータ

Azureアプリケーション診断ログメッセージのサイズ制限

AjaxとBootstrapModalの問題を使用したLaravelフォームの検証

フォーム送信の問題の前のjqueryajax検証

フォームphpのサニタイズと検証

MVCフォームフィールドの検証の問題

Javascript検証フォームの問題

Javascriptフォーム検証送信ボタンの問題

フォーム検証の問題 PHP

タイムマシンのZFSデータセットのサイズを制限する

CodeIgniter-AJAXサインアップフォームの検証

クラウドフォーメーションスタックの検証の問題を更新するときに問題が発生します

フォーム送信のHTTPPOSTサイズを制限する

HTML、Webページのフッターセクションのカスタマイズの問題