Подсветить объект капсулы библиотеки, не принимающий команду addConnection

Я занимаюсь разработкой приложения на основе Slim с использованием библиотеки Illuminate. Я пытаюсь создать соединение с базой данных, используя 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();

Здесь сценарий останавливается, и приложение переходит в состояние "не отвечает".

$ капсулы->addConnection(массив ( 'драйвер' => 'mysql', 'хост' => 'localhost', 'база данных' => 'mydatabase', 'username' => 'myusername', 'password' => 'mypassword', 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => '',));

Я проверял детали своей базы данных снова и снова, и они на 100% верны. Кто-нибудь может указать, что может быть причиной?

ОБНОВИТЬ:

После тестирования я пришел к выводу, что на странице указано неверное утверждение http 500. Например, если я забываю ставить точку с запятой в конце инструкции, она переходит в 500. Это говорит о том, что ошибка может быть чем-то другим, кроме SQL. Есть ли способ включить отладку, чтобы он показал мне причину ошибки. Я мог бы отследить это оттуда?

ОБНОВИТЬ

Я включил отладку. Это дает мне следующую ошибку:

Вызов неопределенной функции Illuminate\Support\value()

2 ответа

"переходит в состояние" не отвечает ". это больше похоже на "не отвечает" с сервера MySQL. Я бы проголосовал за неверное имя хоста. Попробуйте изменить localhost с 127.0.0.1. Также (если поддерживается) лучше использовать mysqli (вместо драйвера mysql).

Потому что, если он зависает на ~30-60 секунд, это настройки тайм-аута, прежде чем вы получите любую ошибку тайм-аута. Есть ли у вас?

Также, для "свежих" примеров использования Eloquent вы можете найти здесь: https://github.com/mattstauffer/Torch (если вы используете laravel 4.2, вам следует переключить ветку на 4.2 для более старых примеров)

Возможно, вам не хватает включить Illuminate\Support\helpers.php, где значение функции () определено так

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;
    }
}
Другие вопросы по тегам