2016-11-27 38 views
-1


我该如何更改Laravel动态数据库?比方说,我们有以下变量:
laravel 5动态mysql数据库

  • $主机(MySQL主机/ IP)
  • $用户(MySQL用户名)
  • $名(MySQL数据库名)
  • $通(MySQL的用户密码)

如何在Laravel 5中连接到此MySQL服务器而无需每次都在配置中进行设置?

问候

+0

在'.env'文件? – jycr753

+0

@ jycr753啊不,我从我的内部数据库中获取这个变量,它是在**。env **中设置的。但我需要连接到外部数据库的变量,我不能设置每个服务器的配置(+200),因为用户删除他们的服务器或添加新的... –

回答

1

试试这个假设的模型Book

use Book; 
 
use Illuminate\Support\Facades\DB; 
 
use Illuminate\Support\Facades\Config; 
 

 
public function configureDatabase($database){ 
 
     Config::set("database.connections.$database", array(
 
      'driver' => 'mysql', 
 
      'host'  => 'localhost', 
 
      'database' => "$database", 
 
      'username' => 'root',//User name here 
 
      'password' => '***', //Password here 
 
      'charset' => 'utf8', 
 
      'collation' => 'utf8_unicode_ci', 
 
      'prefix' => '', 
 
     )); 
 
    } 
 

 
public function getBooks($database){ 
 
    $this->configureDatabase($database) 
 
    return Book::on($database)->all(); 
 
}

+0

我可以在一次执行中使用几乎无限次的配置吗?配置::设置有限吗? –

+0

当然可以。文档没有说Config :: set()的调用是有限的。请记住,它创建了一个到另一个数据库的新连接,这是一个昂贵的计算。 –

+0

谢谢。你能回答为什么我的问题被低估吗?什么问题?没有代码?对于这个问题,我认为没有必要的代码。 –