我是新手学习Laravel,但是我在尝试通过控制器查看数据库时遇到了问题。当我使用控制器来查看我的数据时,我会收到以下错误信息:“SQLSTATE[HY000] [1049] Unknown database 'laravel'”。如果我使用artisan tinker,我可以使用::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=
php artisan tinker
并执行config('database')
。检查它是否选择了正确的值 - 特别是default
值和mysql.database
值。 - ceejayozconfig/database.php
中的值。如果您有(并且正在使用)多个连接,则其中一个可能未配置为将library
作为您的数据库使用。检查env('...', 'laravel')
;某些内容可能正在使用默认值而不是DB_DATABASE
。 - Tim Lewisconfig('database')
,它显示所有数据库都是正确的。 - Paul Carlsonapp/Author.php
是否设置了$connection
值。 - ceejayozconfig/database.php
文件,一切看起来都很好。我甚至搜索了“laravel”,除了注释之外没有找到任何内容。我还查看了我的.env文件,数据库名称也是正确的。 - Paul Carlsonenv('DB_DATABASE', 'forge')
的默认值不是laravel
,所以这个想法也有些牵强附会了。你说你可以使用php artisan tinker
无障碍地查看\App\Author::all()
的内容,那是否在加载library.authors
时有一些可能拥有自己的配置与你定义的不同的中间件?或者访问该路由时使用了一些中间件吗? - Tim Lewis