我尝试使用Laravel Seeder中的exec()
函数使用sql文件作为种子,如下所示:
exec("mysql -u ". env('DB_USERNAME') ." -p". env('DB_PASSWORD') ." ". env('DB_DATABASE') ." < " . database_path() . '/seeds/table.sql');
但是执行php artisan db:seed --class MySeeder
时,得到了此输出
ERROR 1045 (28000): Access denied for user '-p'@'localhost' (using password: NO)
无论我使用什么密码参数(-p
和--password
),总是这样。
但是另一方面,使用带有下面这一行代码的窗口,效果很好。
exec("C:/xampp/mysql/bin/mysql -u " . env('DB_USERNAME') . " --password=" . env('DB_PASSWORD') . " " . env('DB_DATABASE') . " < " . database_path() . '/seeds/table.sql');
之所以这样做,是因为mysql文件很大,我无法将其转换或手动键入以正确地播种每行。有人能帮我吗?我应该使用其他方法吗?谢谢
详细信息:
我很笨,我偶然找到了解决方案。我执行过:
composer dumpautoload
php artisan config:clear
php artisan cache:clear
但是我想composer dumpautoload
是答案。而且我不知道为什么。如果有人完全有理由composer dumpautoload
解决了我的问题,请随时发表评论:)