端くれプログラマの備忘録 Laravel [Laravel] fake()->postcode()の7桁出力を123-4567とハイフンで区切る

[Laravel] fake()->postcode()の7桁出力を123-4567とハイフンで区切る

Laravelのファクトリーで郵便番号の形式を調整するには、fake()->postcode() で生成された値を加工することで対応できます。以下のように、生成された郵便番号をフォーマットするコードを追加してください。

サンプルコード

'postal_code' => preg_replace('/^(\d{3})(\d{4})$/', '$1-$2', fake()->postcode()),

解説

  1. fake()->postcode()
  • 7桁の郵便番号を生成します(例: 1234567)。
  1. preg_replace()
  • 正規表現を使用して、郵便番号をフォーマットします。
  • パターン /^(\d{3})(\d{4})$/ は次を意味します:
    • ^: 文字列の先頭
    • (\d{3}): 3桁の数字をキャプチャ
    • (\d{4}): その後に続く4桁の数字をキャプチャ
    • $: 文字列の末尾
  • $1-$2 はキャプチャした部分(前半3桁と後半4桁)を結合し、間に - を挿入します。

出力例

fake()->postcode()1234567 を生成した場合、結果は 123-4567 になります。

これをファクトリーの定義に組み込むと、郵便番号が適切な形式で生成されます。