Laravel:在localhost

时间:2016-11-25 07:10:36

标签: php laravel migration

我刚开始一个新的Laravel项目,我遇到了一些数据库连接问题。首先,我只有包附带的User模型。它也有迁移。我更新了我的env文件以获取数据库路径:

DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=laravel_project1
DB_USERNAME=root
DB_PASSWORD=''

问题是,当我运行迁移命令

php artisan migrate

它在我的数据库中创建了这些迁移。但现在当我只是想做User :: all();我遇到这个错误有点麻烦:

SQLSTATE[HY000] [1045] Access denied for user 'homestead'@'localhost' (using password: YES) (SQL: select * from `users`)

我甚至用这个命令清除了我的配置缓存:

php artisan config:clear

我不明白错误。

编辑:

    'mysql' => [
        'driver' => 'mysql',
        'host' => 'localhost',
        'port' => env('DB_PORT', '3306'),
        'database' => 'laravel_project1',
        'username' => 'root',
        'password' => '',
        'charset' => 'utf8',
        'collation' => 'utf8_unicode_ci',
        'prefix' => '',
        'strict' => true,
        'engine' => null,
    ],

这似乎解决了这个问题,但我不明白为什么env文件不起作用,因为这是我所推荐的方式。

2 个答案:

答案 0 :(得分:0)

Laravel的数据库配置工作方式是读取 /config/database.php 文件,因此如果您不想让Laravel从.env文件中读取配置,你只需要在 /config/database.php 中进行一些更改,例如:

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

现在 /config/database.php 文件将读取你的.env文件,如果它无法读取,它将具有默认配置(这是每个env()函数的第二个参数以上...)

答案 1 :(得分:0)

正如Vasil Gerginski在我的问题下方的评论中所述,要结束这个问题。重新启动即可解决问题。

工匠启动时,它会缓存您的配置。因此,即使您进行更改,它也不会生效,直到您重新启动artisan服务器。