PHP artisan db:seed 報錯

ILOVECBD發表於2019-12-26

今天使用了下 seeder 來填充資料,常用的幾個命令:
填充器預設路徑:
database/seeders/
系統自帶:
DatabaseSeeder.php
填充器執行,預設的呼叫的是 'run()' 方法
建立:
php artisan make:seeder AdminUserTableSeeder
執行:
php artisan db:seed // 預設呼叫的是 'DatabaseSeeder->run()',我們可在內部呼叫其它的填充器
php artisan db:seed --class=AdminUserTableSeeder // 呼叫指定的填充器
重建資料庫:
php artisan migrate:refresh --seed

今天主要描述一個問題:
    1.我先呼叫:
        php artisan make:seeder AdminUserTableSeeder
    2.生成一個 'AdminUserTableSeeder' 類,但是發現,應該命名為 'AdminUsersTableSeeder',使用者應該為複數。然後我就手動修改了檔案&檔案內部的類名。
    3.執行:
        php artisan db:seed
      直接報錯:
        [ReflectionException] Class AdminUsersTableSeeder does not exist

解決方法:
    composer dump-autoload

具體可檢視:
    'http://stackoverflow.com/questions/30176194/laravel-5-db-seed-class-not-found'

看了別人解釋,立馬想到,php artisan 命名,可能生成了一些 composer 相關的快取,去 'vendor/composer/' 發現了幾個autoload_xx.php檔案,這裡就是 composer 自動載入的檔案列表!也同 'composer.json' 中的 'autoload' 的配置,有很大關聯!

總結:
    本質上還是不懂composer、以及 php artisan 命令的本質!這裡隨便搜了下,有篇文章,我也沒看,有時間再看:
    https://laravel-china.org/topics/1002

————————————————
版權宣告:本文為CSDN博主「beyonddevil」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處連結及本宣告。
原文連結:https://blog.csdn.net/beyond
devil/article/details/54562536

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章