在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);
}
}
我不确定为什么此代码中Eloquent
为use Illuminate\Database\Eloquent\Model;
未知
答案 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)
如果每次迁移创建一个表?
创建单独的权限表迁移