Laravel中通过dd(Model)能否判断模型已连接数据库?
关于Laravel模型connection属性的疑问解答
这个#connection: "phish"仅仅表示你在WhiteListEmail模型类中设置了该属性,不代表模型已经实际连接到数据库。
原因很简单:
- Laravel的模型采用懒加载连接的机制,当你只是实例化模型(
new WhiteListEmail())时,只会加载模型定义的各类配置属性(包括连接名、表名、主键等),不会主动去和数据库建立连接。 - 只有当你执行实际的数据库操作时——比如调用
WhiteListEmail::first()查询数据、$model->save()写入数据,Laravel才会根据模型的connection配置,尝试建立对应的数据库连接。
如果想验证这个连接配置是否能正常工作,你可以执行一次简单的数据库操作,比如:
dd(WhiteListEmail::count());
如果执行成功返回数字,说明连接配置正确且能实际连接到数据库;如果抛出数据库连接相关的异常,就说明配置存在问题(比如数据库不存在、账号密码错误等)。
内容的提问来源于stack exchange,提问作者Rickyforcode
相关产品推荐
相关产品推荐

