提问人:Onur 提问时间:1/18/2014 更新时间:1/20/2014 访问量:4106
laravel 未定义的变量:host
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,
),
),
);
我想做的就是使用不同的主机进行阅读,使用另一台主机进行写作。当我在 localhost 中使用一个连接时,我没有收到任何错误。但是在多个连接中,我收到错误。错误的原因是什么?
答:
-1赞
Tzook Bar Noy
1/18/2014
#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'),
));
然后你去配置文件夹,并在其中为你拥有的每个环境创建一个文件夹。 创建一个生产文件夹,然后比要覆盖的每个文件都要覆盖,只需将其复制粘贴到文件夹中,然后编辑要覆盖的内容即可。
实现这一点,然后再次检查您的错误
评论
0赞
Onur
1/18/2014
我已经试过了。这部分工作良好。使用两个不同的mysql参数进行读/写时,问题就开始了。在这一部分中,我得到了错误。
0赞
Onur
1/20/2014
#2
好的,我找到了问题。这是因为 laravel 版本。我将 laravel 4.0 更新到 4.1,问题解决了。
评论