簡體   English   中英

Laravel 多租戶護照 API:未選擇數據庫

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

Laravel 多租戶護照 API:未選擇數據庫

同時應用php artisan passport:install命令生成 OAuth_Client

將錯誤視為...

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 (?, ?, ?, ?, ?, ?, ?, ?, ?)")

我下面的代碼是.... 為安裝 Passport 創建了 PassportSeeder

數據庫\種子\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,
        ]);
    }
}

配置\數據庫.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

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

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

    }

在租戶連接中,數據庫設置為null

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM