はじめに
登録する際に電話番号も登録できるようにしたところ、phpMyAdminで確認すると電話番号の最初の0
が消えていたのでこれを0
から登録できるように改良します!!
スクショで以下のようになっているのでこれを修正します。
投稿者の環境
MacBook Pro (13-inch, 2019, Two Thunderbolt 3 ports)
macOS Big Sur バージョン11.0.1
PHP 7.3.23
Laravel Framework 6.20.7
ステップ1 電話番号のバリデーションの設定
電話番号は10桁または11桁になります。バリデーションを10桁または11桁にします。
'phone' => ['required','numeric','digits_between:10,11'],
ステップ2 電話番号のデータ型の設定
ここで自分はどハマりして中々突破できませんでした。
結論から言うと、電話番号の型はunsignedBigInteger
にします。
$table->unsignedBigInteger('phone')->after('address');//電話番号
データ型int(11)
にするとMysql「Warning: #1264 Out of range value for column 'カラム名' at row 1)」とエラーが出ます。理由は以下のスクショになります
ステップ3 電話番号を0から表示するように設定
このまま登録をしたとしても、0から表示はされません。phpMyAdminで0から表示されるように変更します。属性のところをUNSIGNED ZERO
に変更します。最後に保存する
を選択
このように表示されると思います。
最後に
数字のデータ型を全てint型にするとこのようなエラーに遭遇する可能性があるのでもっと知るべきだなと思った出来事になりました。
参考URL
電話番号の桁数のQiita
電話番号カラムのデータ型とその扱い[PHP][MYSQL][データ型][int型][integer][桁あふれ][telカラム]