Laravel无法检测到我的数据库

时间:2017-11-23 16:20:25

标签: laravel laravel-5.3

phpmyadmin上创建数据库并安装laravel后,laravel无法检测到我的数据库,我收到此错误:

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

我的迁移课程:

class CreateRolesTable extends Migration
{
    public function up()
    {
        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();
        });

        ...
    }
    public function down()
    {
        Schema::dropIfExists('roles');
    }
}

此命令无法解决我的问题

php artisan migrate
composer dump-autoload

我连接数据库的用户名和密码是正确的,我的Permission模型是:

class Permission extends Model
{
    protected $fillable = ['name' , 'label'];

    public function roles()
    {
        return $this->belongsToMany(Role::class);
    }
}

我不确定为什么此代码中Eloquentuse Illuminate\Database\Eloquent\Model; 未知

2 个答案:

答案 0 :(得分:0)

试试这个 php artisan migrate:refresh 这个命令将删除并重新创建数据库。

好的,如果这不起作用。导航到App / Providers / AuthServiceProvider。 添加此项以导入顶部使用App \ Permission; 的权限类 然后将此代码粘贴到其他函数下面。

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

然后再次运行php artisan migrate:刷新命令行。

答案 1 :(得分:0)

如果每次迁移创建一个表?

创建单独的权限表迁移