【问题标题】:Illegal offset type - Laravel 5.3 - ConnectionFactory.php - Every Model非法偏移类型 - Laravel 5.3 - ConnectionFactory.php - 每个模型
【发布时间】:2017-06-05 19:02:07
【问题描述】:

首先抱歉英语不好,不是母语。

我有一个运行在 XAMPP、windows 7 机器上的 Laravel 5.3 应用程序。

一切都很好,我没有对代码进行任何影响更改,它只是发生了。

每次我的应用尝试与 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,
    ],

如果您认为需要,我可能会为您提供更多信息,因为现在我不知道为什么会发生这种情况。

提前致谢, 佩德罗

【问题讨论】:

  • 您是否使用 php artisan serve 来运行您的应用程序?如果是,重新启动 php artisan serve。它应该重新启动以反映 env 文件中的更改
  • 我没有使用 php artisan serve 来运行应用程序。我用虚拟主机配置了 xampp。感谢您的回复。

标签: laravel laravel-5.3 php-7 laravel-backpack


【解决方案1】:

我遇到了同样的问题并尝试了两种解决方案,但我不确定哪一种有效:

  • 首先我按照 Paulo Costa 的建议执行了“php artisan config:clear”,因为昨天我执行了 config:cache,但问题仍然存在。

  • 其次,我重新启动了 WAMP(正如 Roy Trenneman 所建议的那样;))并且它起作用了。

所以我不确定两者是否都有助于重启。

奖金: https://www.youtube.com/watch?v=5UT8RkSmN4k

【讨论】:

    【解决方案2】:

    尝试命令“php artisan config:cache”或“php artisan config:clear”。 也可以尝试在 .env 文件中设置数据库配置。

    【讨论】:

    • @PedroX 您是否尝试过仅在 database.php 配置中保留 .env 变量?像这样输入: env ('DB_HOST'), env ('DB_DATABASE') ...然后在 .env 中设置值
    猜你喜欢
    • 2019-05-03
    • 2020-10-21
    • 2019-07-16
    • 1970-01-01
    • 2018-01-28
    • 1970-01-01
    • 2011-01-12
    • 2013-03-24
    • 2020-11-26
    相关资源
    最近更新 更多