Laravel縺ァ繝繧ケ繝医ョ繝シ繧ソ菴懈舌繝輔ぃ繧ッ繝医Μ繝サ繧キ繝シ繝
繧ウ繝シ繝繧」繝ウ繧ー繧貞ョ御コ縺励>縺悶ユ繧ケ繝医r縺ッ縺倥a繧医≧縺ィ縺励※繧ゅ√ユ繧ケ繝医ョ繝シ繧ソ繧剃ス懈舌☆繧句ソ隕√′縺ゅj縺セ縺吶′
100莉カ縺ィ縺1,000莉カ蠢隕√↓縺ェ繧九→縲1蛟1蛟倶ス懊k縺ョ縺ッ縺九↑繧翫@繧薙←縺縺ァ縺吶h縺ュ縲
Laravel縺ァ縺ッ縲√弱ヵ繧。繧ッ繝医Μ縲上→縲弱す繝シ繝縲上→縺縺讖溯ス繧貞茜逕ィ縺励※邁。蜊倥↓螟ァ驥上ョ繝繝シ繧ソ縺御ス懈舌〒縺阪∪縺吶ョ縺ァ縲∽サ雁屓縺ッ縺薙ョ謇矩繧偵#邏ケ莉九@縺セ縺吶
Laravel8縺九i險倩ソー譁ケ豕輔′螟峨o繧翫√h繧贋セソ蛻ゥ縺ォ縺ェ縺」縺ヲ縺縺セ縺呻シ∽サ翫∪縺ァ菴ソ縺」縺ヲ縺縺ェ縺九▲縺滓婿縺ッ縲√●縺イ縺薙ョ譁譏弱ョ蛻ゥ蝎ィ繧剃コォ蜿励@縺ヲ縺縺阪∪縺励g縺縲
hasOne縺ョ蝣エ蜷医d繝ェ繝ャ繝シ繧キ繝ァ繝ウ縺ョ縺ゅk繝「繝繝ォ縺ォ蟇セ縺吶k繝繧ケ繝医ョ繝シ繧ソ菴懈舌↓縺、縺縺ヲ縲√げ繧ー縺」縺ヲ繧ゅ≠縺セ繧願ィ倅コ九′隕句ス薙◆繧峨↑縺九▲縺溘ョ縺ァ縺薙■繧峨↓縺セ縺ィ繧√∪縺励◆縲
繝輔ぃ繧ッ繝医Μ縺ィ繧キ繝シ繝
繝輔ぃ繧ッ繝医Μ縺ィ縺ッ
繝「繝繝ォ繧堤函謌舌☆繧九◆繧√ョ縲主キ・蝣エ(Factory)縲上→閠縺医k縺ィ蛻縺九j繧縺吶>縺ィ諤昴>縺セ縺吶
蜷鬆逶ョ縺ォ繝繝シ繧ソ繧剃サ」蜈・縺励√Δ繝繝ォ繧定ェ蜍輔〒逕滓舌@縺ヲ縺縺阪∪縺吶ゆサ」蜈・縺吶k縺ッ蜈ィ縺ヲ荳蠕九〒縺ェ縺上∝ョ滄圀縺ョ蜷咲ァー繧偵Λ繝ウ繝繝縺ォ逕滓舌☆繧九%縺ィ繧ゅ〒縺阪∪縺吶
繧オ繝ウ繝励Ν繧ウ繝シ繝峨ッ縺薙■繧峨6ser繧ッ繝ゥ繧ケ縺ォ蟇セ縺吶k繝輔ぃ繧ッ繝医Μ繧貞ョ夂セゥ縺励※縺縺セ縺吶
namespace Database\Factories;
use App\Models\User;
use Illuminate\Database\Eloquent\Factories\Factory;
use Illuminate\Support\Str;
class UserFactory extends Factory
{
/**
* 繝輔ぃ繧ッ繝医Μ縺ョ蟇セ蠢懊☆繧九Δ繝繝ォ蜷
*
* @var string
*/
protected $model = User::class;
/** * 繝「繝繝ォ縺ョ繝繝輔か繝ォ繝育憾諷九ョ螳夂セゥ * * @return array */
public function definition() {
return [
'name' => $this->faker->name(),
'email' => $this->faker->unique()->safeEmail(),
'email_verified_at' => now(),
'password' => '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', // password
'remember_token' => Str::random(10),
]; }
}
name繧email縺ョ驛ィ蛻縺ォ縺ッfaker繧貞茜逕ィ縺励※縺縺セ縺吶ゅ%繧後ッ縲∵欠螳壹&繧後◆繝代Λ繝。繝シ繧ソ縺ョ繝繧ケ繝医ョ繝シ繧ソ繧堤函謌舌@縺セ縺吶
萓九∴縺ーname縺ァ縺ゅl縺ー'蜑咲伐 闊'縲'貂。霎コ 逶エ莠コ'縺ェ縺ゥ縺ョ繝繝シ繧ソ縺御ス懈舌&繧後※縺縺阪∪縺吶
譌・譛ャ隱槭r蛻ゥ逕ィ縺吶k蝣エ蜷医↓縺ッ縲∬ィュ螳壹ヵ繧。繧、繝ォ縺ォ荳玖ィ倥ョ險隱槭ョ謖螳壹′蠢隕√〒縺吶
'faker_locale' => env('APP_FAKER_LOCALE', 'ja_JP'),
繧ゅ■繧阪s蝗コ螳壼、繧剃サ」蜈・縺吶l縺ー縲√☆縺ケ縺ヲ縺ョ繝「繝繝ォ縺ァ蜷後§蛟、繧貞叙繧九%縺ィ繧ょ庄閭ス縺ァ縺吶
繧キ繝シ繝縺ィ縺ッ
縲守ィョ繧偵∪縺(seeder)縲上%縺ィ縺ァ繝繧ケ繝医ョ繝シ繧ソ縺ョ蛻晄悄蛟、險ュ螳壹↓蛻ゥ逕ィ縺励∪縺吶
繧ッ繝ゥ繧ケ繧呈コ門y縺励※縺翫¢縺ー縲√さ繝槭Φ繝我ク縺、縺ァ繝ォ繝シ繝ォ縺ォ險倩シ峨@縺溷螳ケ縺ョ繝繧ケ繝医ョ繝シ繧ソ縺御ス懈舌&繧後∪縺吶
縺薙■繧峨bUser繝「繝繝ォ縺ォ蟇セ縺吶k繧キ繝シ繝縺ョ繧オ繝ウ繝励Ν繧偵#邏ケ莉九@縺ヲ縺縺阪∪縺吶
namespace Database\Seeders;
use App\Models\User;
use Illuminate\Database\Seeder;
class UserSeeder extends Seeder
{
public function run()
{
User::factory()
->count(50)
->create();
}
}
繝繝輔か繝ォ繝医〒シ代▽縺ョ繝。繧ス繝繝峨〉un縺ョ縺ソ蟄伜惠縺励※縺縺セ縺吶ゅ%縺ョrun繝。繧ス繝繝峨↓險倩ソー縺励◆蜀螳ケ縺ァ繝繧ケ繝医ョ繝シ繧ソ縺御ス懈舌&繧後∪縺吶
蜃ヲ逅縺ョ蜀螳ケ縺ィ縺励※縺ッ
- run繝。繧ス繝繝峨↓縺ヲ縲ゞser繝「繝繝ォ縺ォ蟇セ縺吶k繝輔ぃ繧ッ繝医Μ縺ョ蛻ゥ逕ィ繧貞ョ」險
- count縺ォ縺ヲ螳溯。悟屓謨ー繧貞ョ夂セゥ
- 譛蠕後↓create謖遉コ
縺薙l縺ァ繧キ繝シ繝縺九i蜈医⊇縺ゥ縺ョfactory繧貞他縺ウ蜃コ縺励※縲…ount縺ョ蠑墓焚シ医%縺薙〒縺ッ50蛟具シ峨ョ繝繝シ繧ソ繧剃ス懈舌@縺セ縺吶
隧ウ邏ー縺ェ隱ャ譏弱ッ譛ャ螳カ繧オ繧、繝医↓縺ゅj縺セ縺吶ョ縺ァ縲√%縺。繧峨b縺碑ヲァ縺上□縺輔>縲
繝ェ繝ャ繝シ繧キ繝ァ繝ウ縺ョ縺ゅk繝輔ぃ繧ッ繝医Μ
萓九∴縺ー縲√%縺ョ繧医≧縺ェ繝ェ繝ャ繝シ繧キ繝ァ繝ウ縺ョ縺ゅk繝繝シ繝悶Ν縺後≠縺」縺溘→縺励∪縺吶

Book縺ォ髢「縺吶k繝繧ケ繝医r縺吶k蝣エ蜷医↓繧ゅゞesr繝「繝繝ォ縺ョ繝繝シ繧ソ縺悟ソ隕√↓縺ェ縺」縺ヲ縺阪∪縺吶ゅ∪縺溘。ook繧貞、ァ驥上↓菴懈舌☆繧句ソ隕√′縺ゅk縺ィ縺阪↑縺ゥ縺ォ繝輔ぃ繧ッ繝医Μ縺御スソ縺医k縺ィ蠑キ蜉帙↑豁ヲ蝎ィ縺ォ縺ェ繧翫∪縺吶
繝ェ繝ャ繝シ繧キ繝ァ繝ウ縺ョ險ュ螳
縺セ縺壹ッ繝「繝繝ォ縺ョ繝ェ繝ャ繝シ繧キ繝ァ繝ウ縺九i菴懈舌°繧峨
namespace App\Models;
class User extends Authenticatable
{
use HasFactory;
public function books()
{
return $this->hasMany(Book::class);
}
}
繝輔ぃ繧ッ繝医Μ繧貞茜逕ィ縺吶k縺ォ縺ッ縲√Δ繝繝ォ縺ォ縺ヲHasFactory繝医Ξ繧、繝医r螳」險縺励∪縺吶
Laravel縺ァ縺ッ縲後Δ繝繝ォ蜷阪→荳閾エ縺吶k繧ッ繝ゥ繧ケシ祈actory縲阪ョ蜻ス蜷崎ヲ丞援縺ォ蜑縺」縺溘け繝ゥ繧ケ繧奪atabase\Factories蜷榊燕遨コ髢灘縺九i讀懃エ「縺励∪縺吶
縺薙ョ隕丞援繧貞茜逕ィ縺励↑縺蝣エ蜷医ッ縲√Δ繝繝ォ縺ョnewFactory繝。繧ス繝繝峨r荳頑嶌縺阪@縺ヲ縲√Δ繝繝ォ縺ョ蟇セ蠢懊☆繧九ヵ繧。繧ッ繝医Μ縺ョ繧、繝ウ繧ケ繧ソ繝ウ繧ケ繧堤峩謗・霑斐☆縺薙→縺後〒縺阪∪縺吶
use Database\Factories\Administration\FlightFactory;
/**
繝「繝繝ォ縺ョ譁ー縺励>繝輔ぃ繧ッ繝医Μ繧、繝ウ繧ケ繧ソ繝ウ繧ケ縺ョ菴懈
*
@return \Illuminate\Database\Eloquent\Factories\Factory
*/
protected static function newFactory()
{
return FlightFactory::new();
}
繝輔ぃ繧ッ繝医Μ縺ョ菴懈
縺吶〒縺ォ菴懈先ク医∩縺ョUser繝輔ぃ繧ッ繝医Μ縺ォ邯壹>縺ヲ縲。ook繝輔ぃ繧ッ繝医Μ繧ゆス懈舌@縺セ縺吶
namespace Database\Factories;
use App\Models\Book;
use Illuminate\Database\Eloquent\Factories\Factory;
use Illuminate\Support\Str;
class BookFactory extends Factory
{
protected $model = Book::class;
/**
* 繝「繝繝ォ縺ョ繝繝輔か繝ォ繝育憾諷九ョ螳夂セゥ
*
* @return array
*/
public function definition() {
return [
'name' => $this->faker->name(),
'author' => $this->faker->name(),
]; }
}
Book繝輔ぃ繧ッ繝医Μ縺ァ縺ッ縲蛍ser_id縲阪ョ繝繝シ繧ソ繧剃ス懈舌@縺ヲ縺縺セ縺帙s縲ゅ%縺ョ逅逕ア縺ッ繧キ繝シ繝縺ァ縺碑ェャ譏弱@縺セ縺吶
class UserSeeder extends Seeder
{
public function run()
{
User::factory()
->count(50)
->has(
Book::factory()
->count(1)
->state(function (array $attributes, User $user) {
return ['user_id' => $user->id];
})
)
->create();
}
}
繧キ繝シ繝縺ォ縺ヲUser繝輔ぃ繧ッ繝医Μ繧貞茜逕ィ縺吶k髫帙↓縲”as繝。繧ス繝繝峨r菴ソ縺」縺ヲ繝ェ繝ャ繝シ繧キ繝ァ繝ウ縺ョ縺ゅk繝「繝繝ォ繧ら函謌舌@縺セ縺吶
莉雁屓縺ッhasMany繝ェ繝ャ繝シ繧キ繝ァ繝ウ繧帝。梧攝縺ォ縺励※縺翫j縺セ縺吶′縲…ount縺ョ謨ー繧1縺ォ縺吶l縺ーhasOne繝ェ繝ャ繝シ繧キ繝ァ繝ウ縺ョ蝣エ蜷医b蟇セ蠢懊〒縺阪∪縺吶
Book繝「繝繝ォ縺ョ逕滓舌↓蠢隕√↑user_id縺ッ縲√け繝ュ繝シ繧ク繝」窶輔r菴ソ縺」縺ヲ縲$user->id縲阪r貂。縺励※縺縺セ縺吶ゅ%繧後〒Uesr繝「繝繝ォ菴懈先凾縺ョid繧堤畑縺縺ヲ縲∝、夜Κ繧ュ繝シ縺ァ縺ゅkBook繝「繝繝ォ縺ョuser_id縺御サ」蜈・縺ァ縺阪∪縺吶
繝ェ繝ャ繝シ繧キ繝ァ繝ウ縺ョ縺ゅk繝輔ぃ繧ッ繝医Μ繧定、謨ー菴懈
萓九∴縺ー縲√%縺ョ繧医≧縺ェ繝ェ繝ャ繝シ繧キ繝ァ繝ウ縺後≠縺」縺溷エ蜷

User繝「繝繝ォ縺ォ蟇セ縺励※縲√沓ook繝「繝繝ォ縲阪訓rofile繝「繝繝ォ縲阪′縺昴l縺槭l1蟇セ螟壹ョ繝ェ繝ャ繝シ繧キ繝ァ繝ウ迥カ諷九↓縺ェ縺」縺ヲ縺縺セ縺吶
User繝「繝繝ォ縺ョ逕滓舌↓蠢懊§縺ヲ縲∝、夜Κ繧ュ繝シ繧呈戟縺」縺ヲ縺繧毅ook繝「繝繝ォ縺ィProfile繝「繝繝ォ繧ゆス懊j縺溘>蝣エ蜷医ョ繧オ繝ウ繝励Ν繧ウ繝シ繝峨ッ縺薙■繧峨↓縺ェ繧翫∪縺吶Ias繝。繧ス繝繝峨r繝「繝繝ォ縺ョ謨ー縺縺大茜逕ィ縺吶k縺ィ縺縺莠九〒縺吶ュ縲
class UserSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
User::factory()
->count(50)
->has(
Book::factory()
->count(1)
->state(function (array $attributes, User $user) {
return ['user_id' => $user->id];
})
)->has(
Profile::factory()
->count(1)
->state(function (array $attributes, User $user) {
return ['user_id' => $user->id];
})
)
->create();
}
}
縺薙l縺ァ荳豌励↓50蜷阪ョUser縺ィ縺昴l縺ォ邏舌▼縺50蛟九ョBook縲50蛟九ョ繝励Ο繝輔ぅ繝シ繝ォ縺御ス懈舌&繧後∪縺励◆シ
繝繧ケ繝医こ繝シ繧ケ菴懈舌→菴オ縺帙※菴ソ縺医ー縲√ユ繧ケ繝医ョ繝シ繧ソ菴懈絶偵ユ繧ケ繝亥ョ溯。後→縺縺荳隕ァ縺ョ豬√l繧定ェ蜍募喧縺吶k縺薙→縺後〒縺阪∪縺吶ゆク隕ァ縺ョ豬√l繧定ェ蜍募喧縺励∝屓蟶ー繝繧ケ繝医↑縺ゥ隍謨ー蝗樒ケー繧願ソ斐☆繝繧ケ繝医こ繝シ繧ケ縺ァ蜉帙r逋コ謠ョ縺励∪縺吶
縺薙l縺ァ縲取焔髢薙□縺ェ縲√√上→諤昴▲縺ヲ繝繧ケ繝医r逵∫払縺吶k縺薙→縺ェ縺上∝刀雉ェ縺ョ蜷台ク翫↓蜉ェ繧√※縺縺阪∪縺励g縺縲
Laravel8縺ァ縺ョ繝輔ぃ繧ッ繝医Μ/繧キ繝シ繝縺ョ隱ャ譏弱ッ莉・荳翫↓縺ェ繧翫∪縺吶


