首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Illuminate\Contracts\Container\BindingResolutionException :目标类[Database\Seeders\PermissionTableSeeder]不存在

Illuminate\Contracts\Container\BindingResolutionException :目标类[Database\Seeders\PermissionTableSeeder]不存在
EN

Stack Overflow用户
提问于 2022-10-31 12:18:14
回答 1查看 78关注 0票数 0

所以我对种子有问题,当我第一次看到这个错误时,我想可能文件和表的名称不一样。我试着查找它,找到的是这个链接in laravel 8 with seeding , i has this issue Target class [TableSeeder] does not exist,它说要编辑数据库\种子到数据库\种子的名称空间,但这不是问题,因为它已经正确了。它说要检查composer.json的自动,并改变种子为种子.

代码语言:javascript
运行
复制
 "autoload": {
        "psr-4": {
            "App\\": "app/",
            "Database\\Factories\\": "database/factories/",
            "Database\\Seeders\\": "database/seeders/"
        }
    },

但我也有和他们建议完全一样的东西。在那之后,也有人建议做作曲家自传,这就是结果.

代码语言:javascript
运行
复制
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

我又试着播种,它给了我这个.

代码语言:javascript
运行
复制
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..。

代码语言:javascript
运行
复制
<?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..。

代码语言:javascript
运行
复制
<?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);
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-01 11:23:30

我得到了答案,所以首先,显然表播种机的名字不对。然后我得到了这个错误..。

代码语言:javascript
运行
复制
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看起来是这样的,它运行得很好。

代码语言:javascript
运行
复制
<?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);
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74263162

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档