doumei1926 2017-11-07 13:01
浏览 277
已采纳

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

  • 写回答

1条回答 默认 最新

  • douqian5920 2018-03-15 13:06
    关注

    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.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?