我是laravel的新手,尝试通过控制器查看数据库时当前遇到问题。当我尝试使用控制器查看数据时,出现以下错误。
“ SQLSTATE [HY000] [1049]未知数据库'laravel'”。
如果我使用手工艺修补匠,则可以执行:: all()并查看我的数据,我也成功地迁移了我的数据。只是由于某种原因似乎不喜欢我的观点。
我已经查看了建议运行的其他类似答案
php artisan cache:clear
。
但这对我没有任何帮助。
控制器:
class authorsController extends Controller
{
public function index(){
$authorList = \App\Author::all();
//return $authors;
return view('library.authors');
}
}
.env文件内部
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=library
DB_USERNAME=root
DB_PASSWORD=
答案 0 :(得分:1)
如果您使用php artisan serve
运行Laravel,则在停止并重新启动服务器之前,不会接受.env
的更改。
启动服务器时,可能已将“ laravel”设置为数据库名称。杀死它,然后再次运行命令。
答案 1 :(得分:0)
尝试此命令列表
php artisan cache:clear
php artisan view:clear
php artisan route:clear
php artisan clear-compiled
php artisan config:cache
将这段代码放入路由web.php
中并在浏览器中运行后,这将为您提供数据库是否已连接的信息。
Route::get('/testConnection', function () {
try {
DB::connection()->getPdo();
if(DB::connection()->getDatabaseName()){
echo "Yes! Successfully connected to the DB: " . DB::connection()->getDatabaseName();
die;
}else{
die("Could not find the database. Please check your configuration.");
}
} catch (\Exception $e) {
die($e->GetMessage());
}
});
希望这会对您有所帮助。
答案 2 :(得分:0)
我不确定为什么还可以,但是我确实找到了对我有用的修复程序。在config.database.php
内部,我将'database' => env('DB_DATABASE', 'forge')
更改为'database' => env('library', 'library')
。我觉得我不必更改这些内容,但是出于某种原因可以纠正该问题。
这使我认为它与.env
文件有关,但不确定。我将不得不开始一个新项目,以验证它对我的系统不是很奇怪。
答案 3 :(得分:0)
我试过 php artisan config:clear。我试过 php artisan cache:clear。我创建了数据库。我放弃了它并重新创建了几次。我什至尝试通过更改 .env 中的 DB_DATABASE 值来使用现有数据库,我可以通过 CLI 连接到新数据库和现有数据库。我在 php -m 中看到了驱动程序。因此,要在 Windows 10 上解决此问题,请将 .env 中的 DB_HOST=127.0.0.1 更改为 DB_HOST=localhost 并再次清除配置/缓存。工作了。