我是laravel的新手,我正在学习laracast教程,一切都很好,除了我必须不断地通过DB_DATABASE=
选项在我的.env
文件中切换我的数据库源。
- 当我使用
php artisan serve
时,必须将数据库连接设置为DB_DATABASE=../database/database.sqlite
。如果不这样做,将导致php错误消息:InvalidArgumentException: Database (database/database.sqlite) does not exist.
- 当我想使用
php artisan tinker
时,我必须将其更改为DB_DATABASE=database/database.sqlite
。不这样做将导致命令行错误:InvalidArgumentException with message 'Database (../database/database.sqlite) does not exist.'
我怎样才能纠正这一点,使我不必不断地来回切换?
您可以在config/database.php
中直接指定,而不是在.env
中:
'database' => database_path('database.sqlite')
如果这不起作用,你也可以选择:
'database' => empty(request()->server->get('HTTP_HOST')) ? 'database/database.sqlite' : '../database/database.sqlite'
这里发生的事情是,在php cli HTTP_HOST
是不可用的,所以如果它是空的,那么这意味着你正在使用tinker,而不是php的内置服务器。