今天使用了下 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
laravel的 db:seed 保存,[ReflectionException] Class AdminUsersTableSeeder does not exist
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.