繁体   English   中英

laravel未定义变量:主机

[英]laravel Undefined variable: host

我的问题是,我在MySqlConnector.php中收到以下错误。

 Undefined variable: host error 

我对读/写使用两个不同的连接。 我将它们合并到config / database.php文件中,具体取决于系统使用的环境。 这是mysql连接代码。

 <?php

switch($_SERVER['LARAVEL_ENV']){
    case 'production':

        $connections = array(
            'mysql' => array(
                'read' => array(
                    'host'  => '127.0.0.1',
                ),
                'write' => array(
                    'host'  => 'hosturl',
                ),
                'driver'    => 'mysql',
                'database'  => 'app_system',
                'username'  => 'username',
                'password'  => 'password',
                'charset'   => 'utf8',
                'collation' => 'utf8_unicode_ci',
                'prefix'    => '',
            ),

            'mysql2' => array(
                'read' => array(
                    'host'  => '127.0.0.1',
                ),
                'write' => array(
                    'host'  => 'hosturl',
                ),
                'driver'    => 'mysql',
                'database'  => 'app_userdata',
                'username'  => 'username',
                'password'  => 'password',
                'charset'   => 'utf8',
                'collation' => 'utf8_unicode_ci',
                'prefix'    => '',
            )
        );

    break;
    case 'beta':

        $connections = array(
            'mysql' => array(
                'read' => array(
                    'host'  => '127.0.0.1',
                ),
                'write' => array(
                    'host'  => 'hosturl',
                ),
                'driver'    => 'mysql',
                'database'  => 'app_system',
                'username'  => 'username',
                'password'  => 'password',
                'charset'   => 'utf8',
                'collation' => 'utf8_unicode_ci',
                'prefix'    => '',
            ),

            'mysql2' => array(
                'read' => array(
                    'host'  => '127.0.0.1',
                ),
                'write' => array(
                    'host'  => 'hosturl',
                ),
                'driver'    => 'mysql',
                'database'  => 'app_userdata',
                'username'  => 'username',
                'password'  => 'password',
                'charset'   => 'utf8',
                'collation' => 'utf8_unicode_ci',
                'prefix'    => '',
            )
        );

    break;
    case 'development':

        $connections = array(
            'mysql' => array(
                'driver'    => 'mysql',
                'host'      => 'localhost',
                'database'  => 'app_system',
                'username'  => 'root',
                'password'  => 'root',
                'charset'   => 'utf8',
                'collation' => 'utf8_unicode_ci',
                'prefix'    => '',
            ),

            'mysql2' => array(
                'driver'    => 'mysql',
                'host'      => 'localhost',
                'database'  => 'app_userdata',
                'username'  => 'root',
                'password'  => 'root',
                'charset'   => 'utf8',
                'collation' => 'utf8_unicode_ci',
                'prefix'    => '',
            )
        );

    break;
}

 return array(
'fetch'         => PDO::FETCH_CLASS,
'default'       => 'mysql',
'connections'   => $connections,
'migrations'    => 'migrations',
'redis'         => array(
    'cluster' => true,
    'default' => array(
        'host'     => '127.0.0.1',
        'port'     => 6379,
        'database' => 0,
    ),
),

);

我要做的就是使用另一台主机进行阅读,并使用另一台主机进行写作。 当我在本地主机中使用一个连接时,没有任何错误。 但是在多个连接中,我得到了错误。 错误的原因是什么?

好的,我发现了问题。 这是因为laravel版本。 我将laravel 4.0更新为4.1,问题已解决。

仅用于记录您的环境实现。

您可以在laravel中构建环境检测和特定conf文件的加载。

您可以在这里阅读: http : //laravel.com/docs/configuration#environment-configuration

但一般的想法是在以下环境中定义您的环境:

$env = $app->detectEnvironment(array(

    'local' => array('your-local-machine-name'),
    'production' => array('your--prod-machine-name'),

));

然后您转到config文件夹并在其中为每个环境创建一个文件夹。 创建一个生产文件夹,然后将要覆盖的每个文件简单地复制粘贴到该文件夹​​中,然后编辑要覆盖的内容。

实施此操作,然后再次在此处检查您的错误

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM