如何在 Laravel 中获取当前查询 DB_HOST 值

Posted

技术标签:

【中文标题】如何在 Laravel 中获取当前查询 DB_HOST 值【英文标题】:How to get the current query DB_HOST value in Laravel 【发布时间】:2018-06-15 22:25:20 【问题描述】:

在这个位置:..\config\database.php

   'mysql' => [
                'read' => [
                    'host' => env('DB_HOST_READ', '127.0.0.2'),
                ],
                'write' => [
                    'host' => env('DB_HOST_WRITE', '127.0.0.1'),
                ],
                'driver' => 'mysql',
//                'host' => env('DB_HOST', '127.0.0.1'),
                'port' => env('DB_PORT', '3306'),
                'database' => env('DB_DATABASE', 'forge'),
                'username' => env('DB_USERNAME', 'forge'),
                'password' => env('DB_PASSWORD', ''),
                'unix_socket' => env('DB_SOCKET', ''),
                'charset' => 'utf8mb4',
                'collation' => 'utf8mb4_unicode_ci',
                'prefix' => '',
                'strict' => false,
                'engine' => null,
            ],

.env 文件添加:

DB_HOST_READ=127.0.0.2
DB_HOST_WRITE=127.0.0.1

查看读取和写入主机值。我想验证用于当前正在运行的读写查询的主机。

我正在使用 Laravel 5.5 。那么如何获取每个查询的 DB_HOST 值呢?

【问题讨论】:

DB::connection() 我必须附和它吗?它会显示当前查询吗?在运行查询之前或之后是否必须回显(查询可以是读取类型或写入类型) 【参考方案1】:
env('DB_HOST_READ');
env('DB_HOST_WRITE');

【讨论】:

请在您的答案中添加一些解释,以便其他人可以从中学习【参考方案2】:

您可以使用配置助手功能。

$readHost = config('database.mysql.read.host');
$writehost = config('database.mysql.write.host');

这将考虑 env 文件上的值,您可能在 database.php 配置文件中指定的任何默认值(env('VALUE_FROM_ENF',"default value"))。

参考:https://laravel.com/docs/6.x/configuration

【讨论】:

以上是关于如何在 Laravel 中获取当前查询 DB_HOST 值的主要内容,如果未能解决你的问题,请参考以下文章

如何在刀片文件 laravel 5.6 中获取当前路由名称

如何在 Laravel 4 中的 @if 语句(刀片)中获取当前 URL?

如何在 Laravel 5.3 中获取当前的语言环境

如何在 Laravel 5 中从 Carbon 获取当前时间戳

如何在 laravel eloquent 中获取当前条目信息

如何在 laravel 5.7 中获取当前视图名称(页面名称)