照亮库胶囊对象不接受'addConnection'命令

时间:2016-05-01 14:39:36

标签: php mysql illuminate-container

我正在使用Illuminate库在Slim框架中开发一个应用程序。我正在尝试使用Illuminate \ Database \ Capsule \ Manager创建与数据库的连接。一些如何,它不承认'addConnection'语句。这是我的完整代码。如果有人能够指出我哪里出错了,那将非常有帮助。

require 'lib/vendor/PHPMailer/PHPMailerAutoload.php';
require 'lib/init.php';
require 'lib/Slim/Slim.php';

date_default_timezone_set('UTC');

use lib\Slim\Middleware\SessionCookie;

\Slim\Slim::registerAutoloader();


use Illuminate\Database\Capsule\Manager as Capsule;

$capsule = new Capsule;


$capsule->addConnection(array(
    'driver'    => 'mysql',
    'host'      => 'localhost',
    'database'  => 'mydatabase',
    'username'  => 'myusername',
    'password'  => 'mypassword',
    'charset'   => 'utf8',
    'collation' => 'utf8_unicode_ci',
    'prefix'    => '',
));

use Illuminate\Events\Dispatcher;
use Illuminate\Container\Container;
$capsule->setEventDispatcher(new Dispatcher(new Container));

// Make this Capsule instance available globally via static methods... (optional)
$capsule->setAsGlobal();

// Setup the Eloquent ORM... (optional; unless you've used setEventDispatcher())
$capsule->bootEloquent();

$app->run();

这是脚本停止并且应用程序进入“未响应”状态的地方。

  

$ capsule-> addConnection(阵列(           'driver'=> “MySQL的,           'host'=> 'localhost' 的,           'database'=> 'MYDATABASE',           'username'=> '名为myUsername',           'password'=> '我的密码',           'charset'=> “UTF-8”,           'collat​​ion'=> 'utf8_unicode_ci',           'prefix'=> ',       ));

我一遍又一遍地检查了我的数据库详细信息,它们是100%正确的。任何人都可以指出可能导致它的原因吗?

更新

经过测试,我发现该页面在任何错误的声明中都会出现错误http 500。例如,如果我忘记在语句的末尾添加分号,则会进入500.这表明错误可能是除SQL以外的其他错误。有没有办法启用调试,所以它向我显示错误的原因。我或许可以从那里追踪它?

更新

我启用了调试功能。它给了我以下错误:

  

调用未定义的函数Illuminate \ Support \ value()

2 个答案:

答案 0 :(得分:2)

"进入'没有回应'状态&#34。 这似乎更像是没有回复'来自MySQL服务器。我会投票支持无效的主机名。尝试使用127.0.0.1更改localhost。另外(如果支持)最好使用mysqli(而不是mysql驱动程序)。

因为如果它冻结约30-60秒,则在出现任何超时错误之前是超时设置。你有没有?

此外,对于“新鲜的”' Eloquent用法的例子,你可以在这里找到:https://github.com/mattstauffer/Torch(如果你使用的是laravel 4.2,你应该将分支切换到4.2以用于旧例子)

答案 1 :(得分:0)

可能你缺少包括 Illuminate \ Support \ helpers.php ,其中函数 value()被定义为

if (! function_exists('value')) {
    /**
     * Return the default value of the given value.
     *
     * @param  mixed  $value
     * @return mixed
     */
    function value($value)
    {
        return $value instanceof Closure ? $value() : $value;
    }
}