SQLSTATE [42S02]:找不到基表或视图:1146表'prj_roocket.permissions'不存在

SQLSTATE [42S02]:找不到基表或视图:1146表'prj_roocket.permissions'不存在

问题描述:

I create a migration

Schema::create('roles', function (Blueprint $table) {
        $table->increments('id');
        $table->string('name');
        $table->string('label')->nullable();
        $table->timestamps();
    });

    Schema::create('permissions', function (Blueprint $table) {
        $table->increments('id');
        $table->string('name');
        $table->string('label')->nullable();
        $table->timestamps();
    });

    Schema::create('permission_role', function (Blueprint $table) {
        $table->integer('role_id')->unsigned();
        $table->foreign('role_id')->references('id')->on('roles')->onDelete('cascade');

        $table->integer('permission_id')->unsigned();
        $table->foreign('permission_id')->references('id')->on('permissions')->onDelete('cascade');

        $table->primary(['role_id' , 'permission_id']);
    });

    Schema::create('role_user', function (Blueprint $table) {
        $table->integer('role_id')->unsigned();
        $table->foreign('role_id')->references('id')->on('roles')->onDelete('cascade');

        $table->integer('user_id')->unsigned();
        $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');

        $table->primary(['role_id' , 'user_id']);
    });

Any what I write in CMD php artisan migrate and composer dumpautoload and php artisan serve and... This error is seen. and too I deleted database and I create a new database.

[Illuminate\Database\QueryException] SQLSTATE[42S02]: Base table or view not found: 1146 Table 'prj_roocket.permissions' doesn't exist (SQL: select * from permissions)

[PDOException] SQLSTATE[42S02]: Base table or view not found: 1146 Table 'prj_roocket.permissions' doesn't exist

我创建了一个迁移 p>

  Schema :: create('  roles',function(Blueprint $ table){
 $ table-> incrementments('id'); 
 $ table-> string('name'); 
 $ table-> string('label'  ) - > nullable(); 
 $ table-> timestamps(); 
}); 
 
架构:: create('permissions',function(Blueprint $ table){
 $ table-&gt  ; incrementments('id'); 
 $ table-> string('name'); 
 $ table-> string('label') - > nullable(); 
 $ table-> timestamps  (); 
}); 
 
 Schema :: create('permission_role',function(Blueprint $ table){
 $ table-> integer('role_id') - > unsigned(); 
  $ table-> foreign('role_id') - >引用('id') - > on('roles') - > onDelete('cascade'); 
 
 $ table-> integer(  'permission_id') - > unsigned(); 
 $ table-> foreign('permission_id') - >引用('id') - > on('permissions') - > onDelete('cascade'  ); 
 
 $ table-> primary(['role_id','perm  ission_id']); 
}); 
 
 Schema :: create('role_user',function(Blueprint $ table){
 $ table-> integer('role_id') - > unsigned();  
 $ table-> foreign('role_id') - > references('id') - > on('roles') - > onDelete('cascade'); 
 
 $ table-> 整数('user_id') - > unsigned(); 
 $ table-> foreign('user_id') - > references('id') - > on('users') - > onDelete('  cascade'); 
 
 $ table-> primary(['role_id','user_id']); 
}); 
  code>  pre> 
 
 

任何什么 我在CMD编写 php artisan migrate and composer dumpautoload和php artisan serve and ... code>可以看到这个错误。 我也删除了数据库并创建了一个新数据库。 p>

[Illuminate \ Database \ QueryException] SQLSTATE [42S02]:未找到基表或视图:1146 表'prj_roocket.permissions'不存在(SQL:select * from permissions code>) p>

[PDOException] SQLSTATE [42S02]:找不到基表或视图 :1146 表'prj_roocket.permissions'不存在 p> blockquote> div>

This error is given by the function getPermissions in AuthServiceProvider (or somewhere else you defined your authentication service provider).

Probabily your function looks like this:

protected function getPermissions()
{
    return Permission::with('roles')->get();
}

Try to replace the function getPermissions with:

protected function getPermissions()
{
    try {
        return Permission::with('roles')->get();
    } catch (\Exception $e) {
        return [];
    }
}

and then run php artisan migrate again.

Note: with this fix you are not going to compromise the system security.