PHPのFakerです。Faker Senpai ではないです。
Laravelだと標準でFakerがインストールされ、とても簡単に扱えるのでデータを作成する際には是非利用しましょう。
(Laravelアプリのインストール、モデルファイルはすでに用意してある前提で進めます。 )
config/app.php の一番下に以下を追加
'faker_locale' => 'ja_JP',
routes/web.php に以下を追加
Route::get('/faker', function () {
$faker = Faker\Factory::create('ja_JP');
$dummyData = [
'random_no' => $faker->randomNumber(4) , // 最大4桁の数字
'name' => $faker->name,
'password' => $faker->password,
'country' => $faker->country,
'prefecture' => $faker->prefecture,
'city' => $faker->city,
'postcode' => $faker->postcode,
'address' => $faker->address,
'streetAddress' => $faker->streetAddress,
'phoneNumber' => $faker->phoneNumber,
'email' => $faker->email,
'safeEmail' => $faker->safeEmail, // (実在しないアドレスのため処理とかで使っても安心)
'company' => $faker->company,
'iso8601' => $faker->iso8601($max = 'now'),
'dateTimeBetween' => $faker->dateTimeBetween($startDate = '-110 years', $endDate = 'now')->format('Y年m月d日'),
'numberBetween' => $faker->numberBetween($min = 100, $max = 200),
'title' => $faker->title,
'realText' => $faker->realText($maxNbChars = 50, $indexSize = 2),
'randomNumber' => $faker->randomNumber($nbDigits = NULL),
'randomFloat' => $faker->randomFloat($nbMaxDecimals = NULL, $min = 0, $max = NULL),
'randomElement' => $faker->randomElement($array = ['男性', '女性']),
'lexify' => $faker->lexify($string = '??????'),
'hexcolor' => $faker->hexcolor,
'ipv4' => $faker->ipv4,
'url' => $faker->url,
'imageUrl' => $faker->imageUrl($width = 640, $height = 480, $category = 'cats', $randomize = true, $word = null),
'userAgent' => $faker->userAgent,
'creditCardType' => $faker->creditCardType,
'creditCardNumber' => $faker->creditCardNumber,
'creditCardExpirationDate' => $faker->creditCardExpirationDate,
'isbn13' => $faker->isbn13,
'isbn10' => $faker->isbn10,
];
dump($dummyData);
exit();
});
http://YOUR-APP.TLD/faker にアクセスして表示させます。 次のようなダミーデータが表示されます。
array:31 [▼
"random_no" => 724
"name" => "浜田 舞"
"password" => "sPz?uT[rr"
"country" => "ドミニカ国"
"prefecture" => "埼玉県"
"city" => "廣川市"
"postcode" => "9926575"
"address" => "1202087 大阪府加藤市西区原田町廣川1-8-9"
"streetAddress" => "若松町山岸5-1-2"
"phoneNumber" => "05-4265-9978"
"email" => "mitsuru67@gmail.com"
"safeEmail" => "chiyo.kanou@example.net"
"company" => "株式会社 喜嶋"
"iso8601" => "1984-04-25T21:15:23+0000"
"dateTimeBetween" => "1974年08月07日"
"numberBetween" => 125
"title" => "Dr."
"realText" => "るしていただおじぎを捕とりと歴史れきしになって、と思ってすうりんどんどん流ながら上着うわぎのりを川。"
"randomNumber" => 55
"randomFloat" => 6539745.6
"randomElement" => "男性"
"lexify" => "znkbep"
"hexcolor" => "#fb573b"
"ipv4" => "136.204.203.254"
"url" => "http://wakamatsu.jp/delectus-aspernatur-unde-quae-explicabo-aut-nisi"
"imageUrl" => "https://lorempixel.com/640/480/cats/?97142"
"userAgent" => "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_2) AppleWebKit/5330 (KHTML, like Gecko) Chrome/37.0.841.0 Mobile Safari/5330"
"creditCardType" => "Visa"
"creditCardNumber" => "4485419150999"
"creditCardExpirationDate" => DateTime @1634115758 {#207 ▼
date: 2021-10-13 09:02:38.0 UTC (+00:00)
}
"isbn13" => "9793648060130"
"isbn10" => "7424451421"
]
引用: https://goo.gl/VmSXqV
参考: https://fwhy.github.io/faker-docs/
参考: https://bit.ly/3roaudM
モデル「Client.php (DBテーブル名:client)」に対する「ClientFactory」を作成します。
php artisan make:factory ClientFactory
完了すると database/factories/ClientFactory.php が作成されています
デフォルトでは
$factory->define(Model::class, function (Faker $faker) {
return [
//
];
});
となっているのでここに設定を記述して行きます。
return [
'client_name' => $faker->name ,
'addr_name' => $faker->address,
];
またクラス名も変更しておきます。
use App\Model;
use Faker\Generator as Faker;
$factory->define(Model::class, function (Faker $faker) {
↓
use App\Client;
use Faker\Generator as Faker;
$factory->define(App\Client::class, function (Faker $faker) {
該当クラス( Client )に書き換えた例。↑
これでOKです。
以下の内容で database/seeds/ClientsSeeder.php を作成する
<?php
use Illuminate\Database\Seeder;
class ClientsSeeder extends Seeder {
public function run()
{
// 10件作成
factory(App\Client::class, 10)->create();
}
}
シーダー実行ファイルに記述してあげます
database/seeds/DatabaseSeeder.php
public function run()
{
$this->call(ClientsSeeder::class);
}
まずキャッシュを削除する
php artisan cache:clear; php artisan config:clear; php artisan route:clear; php artisan view:clear; composer dump-autoload
データを全て作り直し、シーダーを実行します
php artisan migrate:fresh --seed