0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

max_input_vars の設定について

Posted at

Laravel開発で注意したいmax_input_varsnの設定について

フォーム送信時に「一部の入力データが欠落する」「保存されない」といった現象が発生しました。
このようなケースでは、PHP の設定項目 max_input_vars の影響が考えられます。
自分の場合は下記のようにカラムの途中で切れて送信されなくなりました

[101] => Array
(
    [name]             => 
    [name_for]    => 
    [edit_possible]    => 01
    [default_column]   => 
    [type]             => 02
    [type_contents]    => 
    [extended_column]  => 
    [extended_choice]  => 
    [status_detail]    => 01
    [list_order]       => 
)

[102] => Array
(
    [name]             => 
    [edit_possible]    => 01
    [default_column]   => 
)

■ max_input_varsとは?

max_input_vars は、1つのリクエストで受け取れる input 要素の最大数を制限する PHP の設定値です。
デフォルト値は 1000でLaravelでは request() や $request->all() に関係します。
この上限を超えると、それ以降の項目はサーバーに届かず、Laravel 側でも取得できないようになっているので注意が必要です。Laravelはこの制限を超えてもエラーを出さないため、原因に気付きにくいです。

■ 影響を受けやすい場面

多数のチェックボックス・テキストフィールドを含むフォーム
多次元配列形式の構造や一括更新など

■ 対策方法

PHP の設定にてmax_input_varsを変更して上限を緩和します。
自分の場合は、開発環境がテストのため極端にカラムが増えていただけだったため不要なものを削除しました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?