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.