Недопустимый тип смещения - Laravel 5.3 - ConnectionFactory.php - Каждая модель

Сначала извините за плохой английский, не родной.

У меня есть приложение Laravel 5.3, работающее на машине XAMPP, Windows 7.

Все работало отлично, и я не вносил никаких изменений в код, это просто произошло.

Каждый раз, когда мое приложение пытается установить соединение с mysql, отображается эта ошибка:

FatalThrowableError in ConnectionFactory.php line 237:
Illegal offset type
in ConnectionFactory.php line 237
ConnectionFactory->createConnector(array('driver' => 'mysql', 'host' => '127.0.0.1', 'port' => '3306', 'database' => 'megaboff', 'username' => 'root', 'password' => '', 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => '', 'strict' => true, 'engine' => null, 'name' => 'mysql')) in ConnectionFactory.php line 126
at ConnectionFactory->Illuminate\Database\Connectors\{closure}()
at call_user_func(object(Closure)) in Connection.php line 965
at Connection->getPdo() in Connection.php line 986
at Connection->getReadPdo() in Connection.php line 423
at Connection->getPdoForSelect(true) in Connection.php line 333

Я могу использовать tinker для доступа к моему приложению и данным в базе данных. Он не работает только в браузере.

При любом запросе к базе данных через браузер возникает эта же ошибка. Я не менял конфигурацию базы данных или файл env. Вот массив:

'mysql' => [
        'driver' => 'mysql',
        'host' => env('DB_HOST', '127.0.0.1'),
        'port' => env('DB_PORT', '3306'),
        'database' => env('DB_DATABASE', 'megaboff'),
        'username' => env('DB_USERNAME', 'root'),
        'password' => env('DB_PASSWORD', ''),
        'charset' => 'utf8',
        'collation' => 'utf8_unicode_ci',
        'prefix' => '',
        'strict' => true,
        'engine' => null,
    ],

Я, вероятно, предоставлю вам больше информации, поскольку вам это кажется необходимым, потому что теперь я понятия не имею, почему это происходит.

Заранее спасибо, Педро


person Pedro X    schedule 20.01.2017    source источник
comment
Вы используете php artisan serve для запуска своего приложения? Если да, перезапустите php artisan serve. Его следует перезапустить, чтобы отразить изменения в файле env.   -  person Rajender Joshi    schedule 20.01.2017
comment
я не использую php artisan serve для запуска приложения. Я настроил xampp с vhosts. Спасибо за ваш ответ.   -  person Pedro X    schedule 20.01.2017


Ответы (2)


Попробуйте ввести команду «php artisan config:cache» или «php artisan config:clear». Можно попробовать тоже указать конфигурацию вашей базы данных в файле .env.

person Paulo Costa    schedule 20.01.2017
comment
@PedroX Вы пытались оставить только переменные .env в конфигурации database.php? Введите так: env ('DB_HOST'), env ('DB_DATABASE') ... И просто установите значения в .env - person Paulo Costa; 20.01.2017

У меня была та же проблема, и я попробовал два решения, но я не уверен, какое из них сработало:

  • Сначала я сделал «php artisan config:clear», как предложил Пауло Коста, потому что вчера я сделал config:cache, но проблема все еще здесь.

  • Во-вторых, я перезапустил WAMP (как предложил Рой Треннеман;)), и это сработало.

Так что я не уверен, помогли ли оба только перезапуск.

Бонус: https://www.youtube.com/watch?v=5UT8RkSmN4k.

person Adrien C    schedule 24.01.2017