次はリレーションを考慮してCompany
とJob
双方を生成してみる
- Companyモデルに
hasMany
メソッドを追加
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\HasMany; // ⭐️ 追加
class Company extends Model
{
use HasFactory;
// ⭐️ 追加
/**
* @return \Illuminate\Database\Eloquent\Relations\HasMany
*/
public function jobs(): HasMany
{
return $this->hasMany(Job::class);
}
}
- DummyDataSeederを編集
hasメソッドを使用することで簡単にリレーションの作成が可能
<?php
namespace Database\Seeders;
use App\Models\Company;
use App\Models\Job; // ⭐️ 追加
use Illuminate\Database\Seeder;
class DummyDataSeeder extends Seeder
{
/**
* Seed the application's database.
*
* @return void
*/
public function run()
{
// ⭐️ 変更
Company::factory(3)
->has(Job::factory()->count(5))
->create();
}
}
- 実行
php artisan db:seed --class=DummyDataSeeder
これでcompaniesと、それに紐づくjobsレコードが生成された
fakerで生成できる種類
いっぱいあるので外部サイトを参照