Every Qiita #17
のんびり独学初学者の毎日投稿チャレンジ 17日目
今回は・・・
cakephp4で初期データをランダム生成した際の備忘録です。
データを複数保存したい
userデータを50程生成したいが、1つずつinsertするのは流石に面倒・・・
ランダムでデータを生成してくれるライブラリーがあれば使ってみたいと思った。
Fakerライブラリーのインストール
composerからFakerをインストールします。
$ composer require fzaninotto/faker
これで準備完了!あとは通常通りseedファイルを作成してFakerオブジェクトから任意のランダムデータを生成します。
seedファイルの生成
bin/cake bake seed Users
まずはusersテーブルのseedファイルをbakeします。
UsersSeed.php
public function run()
{
$faker = Faker\Factory::create();
$data = [];
for($i=0; $i < 50; $i++){
$data[] = [
'email' => $faker->email,
'password' => sha1($faker->password)
];
}
$table = $this->table('users');
$table->insert($data)->save();
}
-
$faker = Faker\Factory::create()Fakerオブジェクトを変数に格納 - $faker->任意でランダムデータを生成します。
sha1()でパスワードをハッシュ化します
seedファイルの実行
bin/cake migrations seed
これでダミーデータが保存されます。
Fakerメソッドの種類
名前や電話番号、住所など様々なものがありますので、上記から用途に合わせて使用してみてください。