所以我对种子有问题,当我第一次看到这个错误时,我想可能文件和表的名称不一样。我试着查找它,找到的是这个链接in laravel 8 with seeding , i has this issue Target class [TableSeeder] does not exist,它说要编辑数据库\种子到数据库\种子的名称空间,但这不是问题,因为它已经正确了。它说要检查composer.json的自动,并改变种子为种子.
"autoload": {
"psr-4": {
"App\\": "app/",
"Database\\Factories\\": "database/factories/",
"Database\\Seeders\\": "database/seeders/"
}
},
但我也有和他们建议完全一样的东西。在那之后,也有人建议做作曲家自传,这就是结果.
Generating optimized autoload files
Class App\Http\Requests\UpdaUserRequest located in \app\Http\Requests\UpdateUserRequest.php does not comply with psr-4 autoloading standard. Skipping.
> Illuminate\Foundation\ComposerScripts::postAutoloadDump
> @php artisan package:discover --ansi
INFO Discovering packages.
jenssegers/agent ............................ DONE
laravel/fortify ............................. DONE
laravel/jetstream ........................... DONE
laravel/sail ................................ DONE
laravel/sanctum ............................. DONE
laravel/tinker .............................. DONE
livewire/livewire ........................... DONE
nesbot/carbon ............................... DONE
nunomaduro/collision ........................ DONE
nunomaduro/termwind ......................... DONE
spatie/laravel-ignition ..................... DONE
Generated optimized autoload files containing 5496 classes
我又试着播种,它给了我这个.
php artisan db:seed
INFO Seeding database.
Illuminate\Contracts\Container\BindingResolutionException
Target class [Database\Seeders\PermissionTableSeeder] does not exist.
at \vendor\laravel\framework\src\Illuminate\Container\Container.php:877
873▕
874▕ try {
875▕ $reflector = new ReflectionClass($concrete);
876▕ } catch (ReflectionException $e) {
如果有人能帮助我,我非常感谢任何能帮助我的人。这是我的DatabaseSeeder.php..。
<?php
namespace Database\Seeders;
// use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;
class DatabaseSeeder extends Seeder
{
/**
* Seed the application's database.
*
* @return void
*/
public function run()
{
$this->call([
PermissionTableSeeder::class,
RolesTableSeeder::class,
PermissionRoleTableSeeder::class,
UsersTableSeeder::class,
RoleUsersTableSeeder::class,
]);
}
}
这是PermissionsTableSeeder.php..。
<?php
namespace Database\Seeders;
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;
class PermissionsTableSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
$permissions = [
[
'id' => 1,
'title' => 'user_access',
],
[
'id' => 2,
'title' => 'task_access',
],
];
Permissions::insert($permissions);
}
}
发布于 2022-11-01 11:23:30
我得到了答案,所以首先,显然表播种机的名字不对。然后我得到了这个错误..。
Error
Class "Database\Seeders\permissions" not found
at \database\seeders\PermissionsTableSeeder.php:28
24▕ 'title' => 'task_access',
25▕ ],
26▕ ];
27▕
➜ 28▕ permissions::insert($permissions);
29▕ }
30▕ }
31▕
在我搜索完互联网之后,我找到了这个https://laracasts.com/discuss/channels/laravel/laravel-8-class-databaseseedersdb-not-found。所以我读了答案,所以你需要在你的表播种机中添加use Illuminate\Support\Facades\DB;
,这样它就可以调用数据库来让它工作。所以现在我的PermissionsTableSeeder.php看起来是这样的,它运行得很好。
<?php
namespace Database\Seeders;
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;
class PermissionsTableSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
$permissions = [
[
'id' => 1,
'title' => 'user_access',
],
[
'id' => 2,
'title' => 'task_access',
],
];
DB::table('permissions')->insert($permissions);
}
}
https://stackoverflow.com/questions/74263162
复制相似问题