【问题标题】:Laravel 5.3, Can't seem to configure which database to use?Laravel 5.3,似乎无法配置使用哪个数据库?
【发布时间】:2017-04-03 15:54:47
【问题描述】:

我是 Laravel 的新手,现在只是在尝试一些教程。我要尝试连接到我已配置的数据库(并使用 Sequel Pro 和 MySQL 命令行应用程序连接到该数据库)。我知道我的数据库正在工作。数据库的名称是“auth”。

我还配置 Laravel 以在 /config/database.php 文件中查看此数据库:

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

这是我用来连接数据库并提取匹配 id=1 的记录的代码:

class Controller extends BaseController {
public function home() {

    $user = \App\User::find(1);
    echo '<pre>', print_r($user), '</pre>';

    return view('home');
}
}

但是当我运行我的应用程序时,我看到了错误:

SQLSTATE[42S02]: 未找到基表或视图:1146 表 'homestead.users' 不存在(SQL: select * from users where users.id = 1 limit 1)

但如果我真的使用名为“users”的表创建数据库“homestead”,则代码运行良好。

我在哪里缺少配置选项?

【问题讨论】:

    标签: php mysql database laravel-5


    【解决方案1】:

    问题在于config/database.phpenv('DB_DATABASE', 'auth') 这将首先检查DB_DATABASE 是否在.env 文件中定义,如果不存在则仅使用auth 数据库。

    因此您可以更新.env 文件或更新配置以不使用环境变量。喜欢'database' =&gt; 'auth'

    【讨论】:

    • 谢谢!效果很好……希望我的教程提到了这一点!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-26
    • 1970-01-01
    • 1970-01-01
    • 2017-04-05
    相关资源
    最近更新 更多