usmonaliyev/laravel-db-connection-resolver

v1.0.0 2024-03-25 11:13 UTC

This package is auto-updated.

Last update: 2024-09-23 09:59:10 UTC


README

Latest Stable Version Total Downloads Latest Unstable Version License PHP Version Require

安装

您可以通过 composer 安装此包

composer require usmonaliyev/laravel-db-connection-resolver

您可以使用以下命令发布配置和迁移文件

php artisan vendor:publish --provider="Usmonaliyev\DbConnectionResolver\DbConnectionResolverServiceProvider"

您可以使用以下命令运行迁移

php artisan migrate

使用方法

将数据库连接添加到您的 config/database.php 文件中

'connections' => [
    ...
    'pgsql' => [
        'driver' => 'pgsql',
        'url' => env('DATABASE_URL'),
        'host' => env('DB_HOST', '127.0.0.1'),
        'port' => env('DB_PORT', '5432'),
        'database' => env('DB_DATABASE', 'forge'),
        'username' => env('DB_USERNAME', 'forge'),
        'password' => env('DB_PASSWORD', ''),
        ...
    ],
    'foo' => [
      ...
    ],
    'bar' => [
        ...
    ]
]

您需要在您的 app/Models/User.php 文件中实现 resolveConnectionName 函数。

或者将 Usmonaliyev\DbConnectionResolver\Traits\ConnectionResolver 特性添加到您的 User 类中。

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Laravel\Sanctum\HasApiTokens;
use Usmonaliyev\DbConnectionResolver\Traits\ConnectionResolver;

class User extends Authenticatable
{
    use ConnectionResolver, HasFactory, HasApiTokens;
    
    ...

要在接受请求时解析数据库连接,请将中间件分配给您的路由。

use Usmonaliyev\DbConnectionResolver\Middleware\ConnectionResolverMiddleware; 
 
Route::middleware([ConnectionResolverMiddleware::class])->group(function () {
    
    Route::get('/', function () {
        //
    });
});

分配中间件到路由

许可证

MIT 许可证 (MIT)。