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

匿名 (未验证) 提交于 2019-12-03 01:09:02

问题:

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:

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.



标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!