Laravelのファクトリーで郵便番号の形式を調整するには、fake()->postcode()
で生成された値を加工することで対応できます。以下のように、生成された郵便番号をフォーマットするコードを追加してください。
サンプルコード
'postal_code' => preg_replace('/^(\d{3})(\d{4})$/', '$1-$2', fake()->postcode()),
解説
fake()->postcode()
- 7桁の郵便番号を生成します(例:
1234567
)。
preg_replace()
- 正規表現を使用して、郵便番号をフォーマットします。
- パターン
/^(\d{3})(\d{4})$/
は次を意味します:^
: 文字列の先頭(\d{3})
: 3桁の数字をキャプチャ(\d{4})
: その後に続く4桁の数字をキャプチャ$
: 文字列の末尾
$1-$2
はキャプチャした部分(前半3桁と後半4桁)を結合し、間に-
を挿入します。
出力例
fake()->postcode()
が 1234567
を生成した場合、結果は 123-4567
になります。
これをファクトリーの定義に組み込むと、郵便番号が適切な形式で生成されます。