Laravel 8 編寫 Seeders

2021-07-19 11:20 更新

運行 Artisan 命令 make:seeder 生成 Seeder,框架生成的 seeders 都放在 database/seeds 目錄下:

php artisan make:seeder UserSeeder 

seeder 類只包含一個默認(rèn)方法:run 。這個方法會在執(zhí)行 db:seed 這個 Artisan 命令 時被調(diào)用。在 run 方法里你可以根據(jù)需要在數(shù)據(jù)庫中插入數(shù)據(jù)。你也可以用 查詢構(gòu)造器Eloquent 模型工廠 來手動插入數(shù)據(jù)。

技巧:使用數(shù)據(jù)填充時會自動禁用 批量賦值保護(hù)

如下所示,在默認(rèn)的 DatabaseSeeder 類中的 run 方法中添加一條數(shù)據(jù)插入語句:

<?php

namespace Database\Seeders;

use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Str;

class DatabaseSeeder extends Seeder
{
    /**
     * 執(zhí)行數(shù)據(jù)庫填充
     *
     * @return void
     */
    public function run()
    {
        DB::table('users')->insert([
            'name' => Str::random(10),
            'email' => Str::random(10).'@gmail.com',
            'password' => Hash::make('password'),
        ]);
    }
} 

技巧:你在 run 的方法簽名中可以用類型來約束你需要的依賴。它們會被 Laravel 服務(wù)容器 自動解析。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號