簡體   English   中英

目標 class [UsersTableSeeder] 不存在

[英]Target class [UsersTableSeeder] does not exist

我正在使用 laravel 最新版本 7。

當我運行php artisan db:seed時,出現以下錯誤:

Illuminate\Contracts\Container\BindingResolutionException

Target class [UsersTableSeeder] does not exist.

編寫完播種器后,您必須運行composer dump-autoload

確保您的composer.json中有此代碼:

"autoload": {
    "classmap": [
      "database"
    ],
}

默認的 laravel 安裝沒有UsersTableSeeder您需要通過運行創建新的播種機

php artisan make:seeder UsersTableSeeder

Laravel 默認沒有 UserTableSeeder。 您可以通過運行以下工匠命令來創建一個:

php artisan make:seeder UsersTableSeeder

運行命令后,您可以在數據庫目錄中找到播種機。 在播種機的運行 function 中,您可以創建所需的用戶。

下面的示例適用於我的 RoleSeeder,但它可能為合適的解決方案提供一些方向:

/**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {

        $customer = Role::updateOrCreate(['name' => 'customer']);
        $customerPermissions = [
            'view users',
            'create users',
            'edit users',
            'delete users',
            'view machines',
            'view profile',
            'edit profile',
            'view documents',
        ];
  $customer->givePermissionTo($customerPermissions);
}

我建議使用 updateOrCreate function 只是因為在測試中您可能想要多次運行播種機。 此 function 將檢查記錄是否已存在並相應地更新記錄

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM