mintellity/dbchanger

该包已被废弃,不再维护。没有建议的替代包。

使用请求头更改数据库。

0.1.1 2016-08-22 13:55 UTC

This package is not auto-updated.

Last update: 2023-05-17 13:02:43 UTC


README

使用请求头更改数据库。Laravel 5。

安装

在 composer.json 中要求包

"mintellity/dbchanger" : "dev-master"

发布配置文件

php artisan vendor:publish --provider="Mintellity\DbChanger\DbChangerServiceProvider"

确保在 dbchanger.php 配置文件中设置了正确的用户。您的配置应如下所示

<?php

return [
    // this are the environments where dbchanger should work on. The active environment is fetched by .env file.
    'envs' => [
        'local'
    ],
    // this is the header parameter's name
    'headerParameter' => 'ApiTestIdentifier',
    // some infos about your db connection. Make sure this user is allowed to create databases.
    'connection' => [
        'host' => env('DB_HOST_TEST', 'localhost'),
        'user' => env('DB_USERNAME_TEST', 'homestead'),
        'password' => env('DB_PASSWORD_TEST', 'secret'),
        'prefix' => 'yourDbPrefix_'
    ]
];

在 Kernel.php 中注册路由中间件

$routeMiddleware = [
  'db.changeable' => \Mintellity\DbChanger\DbChangerMiddleware::class,
  ...
]

如何使用

现在您已准备好使用 DbChanger 包。您需要做的只是将中间件添加到路由中,以便监听 db-change 头参数。例如这样做

Route::group(['as' => 'api.', 'prefix' => 'api', 'namespace' => 'Api', 'middleware' => ['db.changeable']], function () {
// ...
});

如果您向这些路由之一发送请求,您可以在请求中添加一个带有所需数据库的头部参数。

如果您想创建一个新的数据库,您必须添加此路由

Route::get('buildDatabase/{databaseName}/{forceCreate?}', [
        'as' => 'apitest.buildDatabase',
        'uses' => '\Mintellity\DbChanger\DbChangerController@buildDatabase'
    ]);

因此,如果您在浏览器中运行 http://yourpage.app/buildDatabase/testdatabase1/true,系统将创建一个名为 testdatabase1 的新数据库(前缀可以在配置文件中定义)。对数据库名称的验证是必需的|alpha_num|max:30|min:1。如果您创建新数据库或强制创建它,您的种子将自动触发。