目前在学习Laravel5框架,作为菜鸟肯定会遇到很多莫名的问题,今天分享一个管Laravel5数据库配置上的坑。
Laravel5作为一套简洁、优雅的PHP Web开发框架(笑),唯一不足的一点就是中文手册或者说是资料比较少,虽然现在很多大神也开始普及这些东西,但是大神一遍也会忽略一下小坑。今天配置了一下数据库,就是目录Config\database.php,手册上说的数据库的配置文件,打开找到配置mysql的的地方是这样的:
看起来没什么问题,动手改:
没问题,然后满怀信心去测试:
尴尬。。。报错的大概的意思就是让我确认数据库的密码是不是有错。然后我去对比,发现没有错,的确是没有密码的,然后我百度是不是这个框架数据库必须有密码,发现可以密码为空。然后就迷茫了,我继续搜索这个错误本身搜出的结果没有什么有用的 基本就是密码不对,在这个过程中我发现中“homestead@localhost”这个意识是homestead这个用户的密码,我的用户是root为啥变了,唯一的解释就会配置没有生效,然后我查找关于配置的问题 然后查了一下手册:
貌似和我写的不一样呀,完全没有env('DBHOST','localhost'),这个东西。。好,按照手册上写,然后发现的确是没有问题,成功连上数据库了。那么疑问来了 我是根据1图来修改数据库配置 为什么不生效,env()这个是什么东西。后来我去查找了一下发现另一种配置方法,在根文件夹中有个一个.env的文件:
其实一看就是一些配置文件,有邮箱的 redis的 db就是数据库的,注意DB_USERNAME 是报错里的homested,很明显当时读取的配置就是这个.env的配置 那么env();这个就是读取这个文件的配置的,我把database.php的参数恢复然后修改.env的配置 然后测试果然也成功了。
这个小坑估计也就是我这个粗心的人才会遇见,不过借此机会也发现了.env这个配置文件 小小记录一下