0

我正在使用 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(array( 'driver' => 'mysql', 'host' => 'localhost', 'database' => 'mydatabase', 'username' => 'myusername', 'password' => ' mypassword', 'charset' => 'utf8', 'collat​​ion' => 'utf8_unicode_ci', 'prefix' => '', ));

我一遍又一遍地检查了我的数据库详细信息,它们是 100% 正确的。谁能指出可能是什么原因造成的?

更新:

经过测试,我意识到该页面在任何错误的声明中都会给出错误 http 500。例如,如果我忘记在语句末尾添加分号,它会变为 500。这表明错误可能是 SQL 以外的其他错误。有什么方法可以启用调试,以便向我显示错误原因。我也许可以从那里找到它?

更新

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

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

4

2 回答 2

2

“进入‘无响应’状态。” 这似乎更像是来自 MySQL 服务器的“不响应”。我会投票支持无效的主机名。尝试将 localhost 更改为 127.0.0.1。此外(如果支持)最好使用 mysqli(而不是 mysql 驱动程序)。

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

此外,对于 Eloquent 使用的“新鲜”示例,您可以在此处找到:https ://github.com/mattstauffer/Torch (如果您使用的是 laravel 4.2,您应该将分支切换到 4.2 以获取旧示例)

于 2016-05-02T14:19:32.827 回答
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;
    }
}
于 2017-08-04T09:45:14.400 回答