Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.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中访问动态数据库_Php_Mongodb_Laravel_Laravel 5_Laravel 5.3 - Fatal编程技术网

Php 在laravel中访问动态数据库

Php 在laravel中访问动态数据库,php,mongodb,laravel,laravel-5,laravel-5.3,Php,Mongodb,Laravel,Laravel 5,Laravel 5.3,我正在写一份申请书。我有一个主数据库,存储所有数据库名称。我制作了一个api,它发送db_名称。如果该db_名称存在于master db中,它将获取该值和凭据 之后,我想在新数据库上执行所有操作 我写过这样的控制器函数,但它似乎不起作用: public function test(Request $request) { $users = Config::where('db_name', '=', $request->db_name)->first(); if ($

我正在写一份申请书。我有一个主数据库,存储所有数据库名称。我制作了一个api,它发送db_名称。如果该db_名称存在于master db中,它将获取该值和凭据

之后,我想在新数据库上执行所有操作

我写过这样的控制器函数,但它似乎不起作用:

public function test(Request $request) {

    $users = Config::where('db_name', '=', $request->db_name)->first();

    if ($users) {
        config(['database.mongodb' => [
            'database' => $users->db_name
        ]]);
    }

    $contacts = \DB::collection('contacts')->get();

    return response()->json($contacts);

}
我正在访问的Url:
http://localhost:8000/api/test?db_name=79b83e17125f770f0294619942586e57

api.php
Route::get('/test','SearchController@test');

我正在使用mongodb和jenssegers/laravel mongodb库。有什么建议吗

你可以从两个方面得到这样的结果

还可以将数据库名称运行时更改为配置文件


经过大量的搜索和谷歌搜索,我找到了一个有效的解决方案


也尝试了新的解决方案,但仍然没有结果。我正在传递的数据库中有一条记录api@ManojKumar我走第二条路,请试一试this@ManojKumar返回DB::connection()->getDatabaseName();请确保更改后的连接。更改后,它不会更改db名称,而是返回null。对于多个连接,这里的文档将手动讨论database.php中提到的连接。目前的情况并非如此。完成所有这些之后,我检查了它是否没有更改database.php中默认的连接设置
public function test(Request $request) {

    $users = Config::where('db_name', '=', $request->db_name)->first();

    $contacts = \DB::collection($users->db_name.'.contacts')->get();

    return response()->json($contacts);
}
  public function test(Request $request) {
        $users = Config::where('db_name', '=', $request->db_name)->first();

         if ($users) {
             \Config::set('database.connections.mongodb.database',$users->db_name);
          }
// retrun DB::connection()->getDatabaseName()
         $contacts = \DB::collection('contacts')->get();

         return response()->json($contacts);
}