【问题标题】:Illegal string offset on heroku deploymentheroku 部署上的非法字符串偏移
【发布时间】:2017-12-11 05:53:33
【问题描述】:

我正在 Laravel 5.4 中配置我的 postgresql 驱动程序以部署到 Heroku。这是我的 config/database.php,default 已经设置为 pgsql

'pgsql' => [
        'driver' => 'pgsql',
        'host' => parse_url(getenv("DATABASE_URL"))['host'],
        'database' => substr(parse_url(getenv("DATABASE_URL"))['path'], 1),
        'username' => parse_url(getenv("DATABASE_URL")['username']),
        'password' => parse_url(getenv("DATABASE_URL")['password']),
        'charset' => 'utf8',
        'prefix' => '',
        'schema' => 'public',
    ],

当我提交时,我看到了这个警告

PHP Warning: Illegal string offset 'username' in app/config/database.php on line 62

当运行heroku run php artisan serve我得到一个错误

[Symfony\Component\Debug\Exception\FatalThrowableError]  
Type error: PDO::__construct() expects parameter 2 to be string, array given

这是我的.env

DB_CONNECTION=pgsql
DB_HOST=127.0.0.1
DB_PORT=5432
DB_DATABASE=forge
DB_USERNAME=postgres
DB_PASSWORD=

【问题讨论】:

    标签: php postgresql laravel heroku laravel-5.4


    【解决方案1】:

    我在这个网站上找到了答案。它还满足 mysql 和 sqlite,请阅读 https://mattstauffer.co/blog/installing-a-laravel-app-on-heroku

    【讨论】:

      【解决方案2】:

      如果您想从提供的 .env 中获取正确的数据,您的配置数组应如下所示。

      'pgsql' => [
                  'driver' => 'pgsql',
                  'host' => env('DB_HOST', '127.0.0.1'),
                  'port' => env('DB_PORT', '5432'),
                  'database' => env('DB_DATABASE', 'forge'),
                  'username' => env('DB_USERNAME', 'forge'),
                  'password' => env('DB_PASSWORD', ''),
                  'charset' => 'utf8',
                  'prefix' => '',
                  'schema' => 'public',
                  'sslmode' => 'prefer',
              ]
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-09-30
        • 2020-11-29
        • 2017-09-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多