Illuminate\Contracts\Container\BindingResolutionException
Target class [Database\Seeders\CountriesTableSeeder] does not exist.
at C:\......\blog\vendor\laravel\framework\src\Illuminate\Container\Container.php:811
807?
808? try {
809? $reflector = new ReflectionClass($concrete);
810? } catch (ReflectionException $e) {
? 811? throw new BindingResolutionException("Target class [$concrete] does not exist.", 0, $e);
812? }
813?
814? // If the type is not instantiable, the developer is attempting to resolve
815? // an abstract type such as an Interface or Abstract Class and there is
1 C:\......\blog\vendor\laravel\framework\src\Illuminate\Container\Container.php:809
ReflectionException::("Class Database\Seeders\CountriesTableSeeder does not exist")
2 C:\......\blog\vendor\laravel\framework\src\Illuminate\Container\Container.php:809
ReflectionClass::__construct("Database\Seeders\CountriesTableSeeder")
Run Code Online (Sandbox Code Playgroud)
muh*_*ive 14
为了适应这些变化,将Database\Seeders命名空间添加到您的播种机类。
namespace Database\Seeders;
Run Code Online (Sandbox Code Playgroud)
此外,将所有种子文件从以前的database/seeds目录移动到database/seeders文件夹。
在您的情况下,use Database\Seeders\...
从DatabaseSeeder.php文件中删除所有以开头的行
应该可以解决问题
您还可以使用种子运行转储自动加载和新鲜迁移,
composer dump-autoload
php artisan migrate:fresh --seed
Run Code Online (Sandbox Code Playgroud)
对于 Laravel 8,您需要进行以下更改才能使 Seeding 工作:-
在DatabaseSeeder.php和其他 Seeder 文件的顶部添加Database\Seeders命名空间:-
namespace Database\Seeders;
Run Code Online (Sandbox Code Playgroud)
将文件夹名称种子替换为位于文件夹的播种机\database\。
更新composer.json如下:
namespace Database\Seeders;
Run Code Online (Sandbox Code Playgroud)
最后,运行以下命令:-
composer dump-autoload
php artisan db:seed
Run Code Online (Sandbox Code Playgroud)
希望它会在将来对某人有所帮助!
Ali*_*mar -1
数据库播种器.php
<?php
namespace Database\Seeders;
use Illuminate\Database\Seeder;
use Illuminate\Database\Eloquent\Model;
class DatabaseSeeder extends Seeder
{
/**
* Seed the application's database.
*
* @return void
*/
public function run()
{
$this->call([
CountriesTableSeeder::class,
ProvincesTableSeeder::class,
RegionsTableSeeder::class,
PermisionsTableSeeder::class,
RolesTableSeeder::class,
StatusTypesTableSeeder::class,
StatusesTableSeeder::class,
]);
}
}
Run Code Online (Sandbox Code Playgroud)
国家TableSeeder.php
<?php
use App\Country;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;
use Illuminate\Database\Eloquent\Model;
class CountriesTableSeeder extends Seeder
{
private $numberOfCountries = 10;
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
DB::table('countries')->insert([
['country_name' => 'iraq'],
['country_name' => 'qater'],
]);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7565 次 |
| 最近记录: |