简体   繁体   English

Laravel 多租户护照 API:未选择数据库

[英]Laravel Multi-Tenancy Passport API : No Database Selected

Laravel Multi-Tenancy Passport API: No Database Selected Laravel 多租户护照 API:未选择数据库

while applying the php artisan passport:install command to generate OAuth_Client同时应用php artisan passport:install命令生成 OAuth_Client

Getting the error as...将错误视为...

PDOException::("SQLSTATE[3D000]: Invalid catalog name: 1046 No database selected")

  2   C:\wamp64\www\vaistra\products\VSMS\vendor\laravel\framework\src\Illuminate\Database\Connection.php:458
      PDO::prepare("insert into `oauth_clients` (`user_id`, `name`, `secret`, `redirect`, `personal_access_client`, `password_client`, `revoked`, `updated_at`, `created_at`) values (?, ?, ?, ?, ?, ?, ?, ?, ?)")

My below code is.... Created PassportSeeder for installing Passport我下面的代码是.... 为安装 Passport 创建了 PassportSeeder

database\seeds\PassportSeeder.php数据库\种子\PassportSeeder.php

<?php
use Illuminate\Database\Seeder;

use Laravel\Passport\Client;
use Laravel\Passport\PersonalAccessClient;

class PassportSeeder extends Seeder
{
    public function run()
    {
        $client = Client::create([
            'name' => 'Personal Access Client',
            'secret' => config('passport.personal_access_client.secret'),
            'redirect' => 'http://localhost',
            'personal_access_client' => '1',
            'password_client' => '0',
            'revoked' => '0',
        ]);
        
        PersonalAccessClient::create([
            'client_id' => $client->id,
        ]);
    }
}

config\database.php配置\数据库.php

    'default' => env('DB_CONNECTION', 'tenant'),

'connections' => [

        'tenant' => [
            'driver' => 'mysql',
            'url' => env('DATABASE_URL'),
            'host' => env('DB_HOST', '127.0.0.1'),
            'port' => env('DB_PORT', '3306'),
            'database' => null,
            'username' => env('DB_USERNAME', 'forge'),
            'password' => env('DB_PASSWORD', ''),
            'unix_socket' => env('DB_SOCKET', ''),
            'charset' => 'utf8mb4',
            'collation' => 'utf8mb4_unicode_ci',
            'prefix' => '',
            'prefix_indexes' => true,
            'strict' => true,
            'engine' => null,
            'options' => extension_loaded('pdo_mysql') ? array_filter([
                PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
            ]) : [],
        ],

        'landlord' => [
            'driver' => 'mysql',
            'url' => env('LANDLORD_DATABASE_URL'),
            'host' => env('LANDLORD_DB_HOST', '127.0.0.1'),
            'port' => env('LANDLORD_DB_PORT', '3306'),
            'database' => env('LANDLORD_DB_DATABASE', 'forge'),
            'username' => env('LANDLORD_DB_USERNAME', 'forge'),
            'password' => env('LANDLORD_DB_PASSWORD', ''),
            'unix_socket' => env('LANDLORD_DB_SOCKET', ''),
            'charset' => 'utf8mb4',
            'collation' => 'utf8mb4_unicode_ci',
            'prefix' => '',
            'prefix_indexes' => true,
            'strict' => true,
            'engine' => null,
            'options' => extension_loaded('pdo_mysql') ? array_filter([
                PDO::MYSQL_ATTR_SSL_CA => env('LANDLORD_MYSQL_ATTR_SSL_CA'),
            ]) : [],
        ],

app\Providers\AuthServiceProvider.php app\Providers\AuthServiceProvider.php

    public function boot()
    {
        $this->registerPolicies();

        Passport::hashClientSecrets();
        
        Passport::routes();

    }

The database is set to null in your tenant connection.在租户连接中,数据库设置为null

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM