Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel 5更改控制器中的数据库名称_Php_Database_Laravel_Sqlsrv - Fatal编程技术网

Php Laravel 5更改控制器中的数据库名称

Php Laravel 5更改控制器中的数据库名称,php,database,laravel,sqlsrv,Php,Database,Laravel,Sqlsrv,呃。我需要将数据库名称更改为特定的控制器。我已经将database.php更改为 'sqlsrv' => [ 'driver' => 'sqlsrv', 'host' => env('DB_HOST', 'loal'), 'database' => env('DB_DATABASE', 'test1'), 'username' => env('DB_USERNAME', ''),

呃。我需要将数据库名称更改为特定的控制器。我已经将database.php更改为

'sqlsrv' => [
        'driver'   => 'sqlsrv',
        'host'     => env('DB_HOST', 'loal'),
        'database' => env('DB_DATABASE', 'test1'),
        'username' => env('DB_USERNAME', ''),
        'password' => env('DB_PASSWORD', ''),
        'charset'  => 'utf8',
        'prefix'   => '',
    ],
    'sqlsrv2' => [
        'driver'   => 'sqlsrv',
        'host'     => env('DB_HOST', 'local'),
        'database' => env('DB_DATABASE', 'test2'),
        'username' => env('DB_USERNAME', ''),
        'password' => env('DB_PASSWORD', ''),
        'charset'  => 'utf8',
        'prefix'   => '',
    ],
我的主数据库是test1,我需要在这里将其更改为test2 DB名称:

 public function TransactionHistory(Request $request){

    Config::set('database.default','sqlsrv2');

    dd(DB::connection() );
}

但它只返回null,并且仍在读取测试1。有人吗?

一种方法是使用
DB::connection()
方法更改连接:

$connection = DB::connection('sqlsrv2'); //this will create a database connection using sqlsrv2 in your config.
现在,您可以使用
$connection
运行查询等


一种方法是使用
DB::connection()
方法更改连接:

$connection = DB::connection('sqlsrv2'); //this will create a database connection using sqlsrv2 in your config.
现在,您可以使用
$connection
运行查询等


如果您使用的是Eluquent,则有更优雅的方法

  • 为第二个连接创建其他配置
  • `

    `

  • 在模型中设置连接:
  • `
    如果你使用的是Eluquent,还有更优雅的方法

  • 为第二个连接创建其他配置
  • `

    `

  • 在模型中设置连接:
  • `
    您好@jaysingkar,我尝试了您的解决方案,但仍然在阅读test1:(
    $connection=DB::connection('sqlsrv2');dd($connection->getDatabaseName());
    哦,很抱歉我没有注意到您的配置文件。在您的
    sqlsrv2
    配置中,
    'database'=>env('DB_database','test2'),
    change
    env('DB_DATABASE','test2')
    要测试2或更改环境变量以使用除'DB_DATABASE'之外的其他变量,因为它在您的两个连接中具有相同的数据库名称EAP。我现在知道了。谢谢兄弟:)您好@jaysingkar,我尝试了您的解决方案,但它仍然是test1:(
    $connection=DB::connection('sqlsrv2');dd($connection->getDatabaseName());
    哦,很抱歉我没有注意到你的配置文件。在你的
    sqlsrv2
    配置中,
    'database'=>env('DB_database','test2'),
    change
    env('DB_database','test2'))
    测试2或将环境变量更改为使用“DB\u DATABASE”以外的其他变量,因为它在两个连接中具有相同的数据库名称EAP。我现在就知道了。谢谢兄弟:)
    namespace App;
    
    use Illuminate\Database\Eloquent\Model;
    
    class Flight extends Model
    {
        /**
         * The connection name for the model.
         *
         * @var string
         */
        protected $connection = 'connection-name';
    }