現象
Laravelで1000件以上のPOSTをしたところ、途中で値がなくなってしまっていた。
フォーム画面では500レコード表示されているのに、POSTしたデータは250件ほどしかない、といった具合だ。
Laravel側の設定かと思いきや、PHPの設定の問題とのこと。
原因
max_input_vars
の項目が最大POST数とのことで、今回は4カラムをPOSTしていたため、1000/4=250レコードしかPOSTできていなかった。
この値を書き換えることでより多くの値をPOST出来るようになる。
Laravel側の対応
1./etc/php/7.1/fpm
内にphp.ini
ファイルがあるので、ルート権限で編集する(sudo vim /etc/php/7.1/fpm/php.ini
)。
/etc/php/7.1/fpm/php.ini
; max_input_vars = 1000
; コメントを外して任意の値に書き換える
max_input_vars = 10000
2.反映させるために一度vagrant provision
コマンドを実行する。
3.再度phpinfoを確認して反映されていることを確認。
所感
だからって一度に大量のデータをPOSTするのもちょっとアレな感じではある。