0

嗨,我正在尝试使用 config 访问数据库名称,但不幸的是它不起作用,请帮助我如何解决这个问题,谢谢。

物业模型

 public function editedBy()
    {
        return $this->belongsToMany('App\User',config('database.connections.web.database'), 'property_id', 'user_id')->withTimestamps();
    }

应用程序/配置/数据库/

 'connections' => [

        'sqlite' => [
            'driver' => 'sqlite',
            'database' => env('DB_DATABASE', database_path('database.sqlite')),
            'prefix' => '',
        ],

   
        'web' => [
            'driver' => 'mysql',
            'host' => env('DB_WEB_HOST'),
            'port' => env('DB_WEB_PORT'),
            'database' => env('DB_WEB_DATABASE'),
            'username' => env('DB_WEB_USERNAME'),
            'password' => env('DB_WEB_PASSWORD'),
            'charset' => 'utf8mb4',
            'collation' => 'utf8mb4_unicode_ci',
            'prefix' => '',
            'strict' => true,
            'engine' => null,
        ],

    ],
4

1 回答 1

0

您可以尝试使用 env('DB_DATABASE') 来使用数据库名称。它显示您已更改默认变量,因此在您的情况下可能是这样的。

  public function editedBy()
        {
            return $this->belongsToMany('App\User',env('DB_WEB_DATABASE'), 'property_id', 'user_id')->withTimestamps();
        }

或者如果你真的想使用 config 这就是例子。

 public function getDatabaseName()
{
    $databaseName = Config::get('database.connections.'.Config::get('database.default'));

    dd($databaseName['database']);
}
于 2021-05-04T06:50:42.863 回答