【问题标题】:Laravel DB array issuesLaravel DB 数组问题
【发布时间】:2020-11-24 02:57:03
【问题描述】:

最近在 localhost 上安装了 Laravel,并在 PhPMyadmin 中做了一个 DB。尝试创建测试用户并注册时出现此错误:

照亮\数据库\查询异常 数据库主机数组为空。 (SQL: select count(*) as aggregate from users where email

这是迁移、.env 还是配置错误?

.env

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=swarzie
DB_USERNAME=root
DB_PASSWORD=Gal%1981

配置

 'mysql' => [
            'driver' => 'mysql',
            'url' => env('DATABASE_URL'),
            'host' => env( '127.0.0.1'),
            'port' => env( '3306'),
            'database' => env( 'swarzie'),
            'username' => env( 'root'),
            'password' => env( 'Gal%1981'),
            'unix_socket' => env('DB_SOCKET', ''),
            'charset' => 'utf8mb4',
            'collation' => 'utf8mb4_unicode_ci',
            'prefix' => '',
            'prefix_indexes' => true,
            'strict' => false,
            'engine' => null,
            'options' => extension_loaded('pdo_mysql') ? array_filter([
                PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
            ]) : [],
        ],

以前使用过 php,但对 Laravel 框架来说是新手。请问这个怎么改?

谢谢你:)

【问题讨论】:

  • 不应该是'host' => env( 'DB_HOST'),吗?
  • 事实上,除了url 参数之外,所有env() 函数的值都是错误的。
  • 非常感谢 2 的帮助,这意味着很多!!!

标签: php database laravel


【解决方案1】:

你的配置文件设置不正确,请看下面的sn-p。我已经像您一样将 db 密码硬编码到配置文件中,但是将您的 db 密码添加到配置文件中并不是一个好主意,这对于本地开发来说是可以的,但对于生产来说是个坏主意。只需将其从配置文件中删除并使用 .env

'mysql' => [
            'driver' => 'mysql',
            'url' => env('DATABASE_URL'),
            'host' => env('DB_HOST', '127.0.0.1'),
            'port' => env('DB_PORT', '3306'),
            'database' => env('DB_DATABASE', 'swarzie'),
            'username' => env('DB_USERNAME', 'root'),
            'password' => env('DB_PASSWORD', 'Gal%1981'),
            'unix_socket' => env('DB_SOCKET', ''),
            'charset' => 'utf8mb4',
            'collation' => 'utf8mb4_unicode_ci',
            'prefix' => '',
            'prefix_indexes' => true,
            'strict' => true,
            'engine' => null,
            'options' => extension_loaded('pdo_mysql') ? array_filter([
                PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
            ]) : [],
        ],

显示错误,因为数据库中不存在用户表,初始化数据库运行

php artisan migrate

【讨论】:

  • 非常感谢您:)...我将配置文件更改为您的规格,然后进行了迁移,但仍然存在问题。经过一点研究,我意识到我必须清除缓存,然后一旦我这样做了,迁移就成功了!!
  • 没问题,如果对你有帮助请采纳。
猜你喜欢
  • 2017-11-14
  • 2020-11-24
  • 2017-11-12
  • 1970-01-01
  • 2019-02-12
  • 2019-03-16
  • 2018-08-25
  • 1970-01-01
  • 2018-07-06
相关资源
最近更新 更多