Sas*_*sha 239 laravel composer-php laravel-5 artisan
当我运行php artisan db:seed我收到以下错误:
[ReflectionException] Class SongsTableSeeder does not exist
Run Code Online (Sandbox Code Playgroud)
到底是怎么回事?
我的DatabaseSeeder类:
<?php
use Illuminate\Database\Seeder;
use Illuminate\Database\Eloquent\Model;
class DatabaseSeeder extends Seeder {
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
Model::unguard();
$this->call('SongsTableSeeder');
}
}
Run Code Online (Sandbox Code Playgroud)
我的SongsTableSeeder类:
<?php
// Composer: "fzaninotto/faker": "v1.4.0"
use Faker\Factory as Faker;
use Illuminate\Database\Seeder;
use DB;
class SongsTableSeeder extends Seeder {
public function run()
{
$faker = Faker::create();
$songs = [];
foreach(range(1, 10) as $index)
{
$songs[] = ['title' => $faker->words(rand(1,4))];
}
DB::table('songs')->insert($songs);
}
}
Run Code Online (Sandbox Code Playgroud)
Mar*_*łek 655
您需要将SongsTableSeeder文件存入SongsTableSeeder.php您的DatabaseSeeder.php文件所在的目录中.
你需要在你的控制台中运行:
composer dump-autoload
Run Code Online (Sandbox Code Playgroud)
生成新的类映射,然后运行:
php artisan db:seed
Run Code Online (Sandbox Code Playgroud)
我刚试过它.它在Laravel 5中没有问题
Ron*_*onk 16
我解决了这个问题:
发生这种情况是因为我对文件名进行了更改.我不知道为什么改变之后它不起作用.
sim*_*eco 13
文件SongsTableSeeder.php应位于database/seeds目录或其子目录中.
你需要运行:
composer dump-autoload
Run Code Online (Sandbox Code Playgroud)
然后:
php artisan db:seed
Run Code Online (Sandbox Code Playgroud)
要么:
php artisan db:seed --class=SongsTableSeeder
Run Code Online (Sandbox Code Playgroud)
pab*_*ros 10
如果迁移到Laravel 8,则必须namespace在seeders类中添加一个:
<?php
namespace Database\Seeders;
...
Run Code Online (Sandbox Code Playgroud)
接下来,在您的composer.json文件中,classmap从该autoload部分中删除块并添加新的命名空间类目录映射:
<?php
namespace Database\Seeders;
...
Run Code Online (Sandbox Code Playgroud)
最后,做一个composer dump-autoload。
更多信息:https : //laravel.com/docs/8.x/upgrade#seeder-factory-namespaces
小智 5
SongsTableSeeder.php 应该在 database/seeds 目录中
控制台命令步骤:
composer dump-autoload
Run Code Online (Sandbox Code Playgroud)
进而:
php artisan cache:clear
Run Code Online (Sandbox Code Playgroud)
进而:
php artisan optimize
Run Code Online (Sandbox Code Playgroud)
进而:
php artisan db:seed
Run Code Online (Sandbox Code Playgroud)
或者:
php artisan db:seed --class=SongsTableSeeder
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
131606 次 |
| 最近记录: |