Laravel 8 編寫(xiě) Seeders

2021-07-19 11:20 更新

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

php artisan make:seeder UserSeeder 

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

技巧:使用數(shù)據(jù)填充時(shí)會(huì)自動(dòng)禁用 批量賦值保護(hù)。

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

<?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ù)庫(kù)填充
     *
     * @return void
     */
    public function run()
    {
        DB::table('users')->insert([
            'name' => Str::random(10),
            'email' => Str::random(10).'@gmail.com',
            'password' => Hash::make('password'),
        ]);
    }
} 

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


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

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)