我在laravel 5.2中有这种情况,如果我这样做:
DB_CONNECTION=sqlite
DB_HOST=127.0.0.1
DB_PORT=
DB_DATABASE=database/database.sqlite
DB_USERNAME=
DB_PASSWORD=
在.env
文件中我这个:
SQLiteConnector.php第34行中的InvalidArgumentException: 数据库(database / database.sqlite)不存在。
尝试使用控制器中的此代码操作laravel
错误呈现系统:
<?php
namespace App\Http\Controllers;
use App\User;
class SampleController extends Controller
{
public function findUser()
{
$user = User::firstOrFail();
return $user->toArray();
}
}
这适用于php artisan migrate
命令,但为了让controller
代码按预期呈现错误,我必须这样做:
DB_CONNECTION=sqlite
DB_HOST=127.0.0.1
DB_PORT=
DB_DATABASE=../database/database.sqlite
DB_USERNAME=
DB_PASSWORD=
要解决此问题,我需要php artisan migrate
和SampleController
工作,我已将其放在config/database.php
文件中:
'connections' => [
'sqlite' => [
'driver' => 'sqlite',
'database' => database_path('database.sqlite'),
'prefix' => '',
],
为什么default
意味着访问laravel website无法正常工作的sqlite
。这是我应该注意的错误吗?
答案 0 :(得分:2)
config.php
文件中的正常配置应为
'sqlite' => [
'driver' => 'sqlite',
'database' => env('DB_DATABASE', database_path('database.sqlite')),
'prefix' => '',
],
此外,在DB_DATABASE
文件中提及.env
的适当方法是指定绝对文件名,例如/var/www/laravel/database/database.sqlite
而不是相对位置。
例如,在Windows
DB_DATABASE=C:\wamp\www\laravel\database\database.sqlite
中提到的内容
DB_DATABASE=/absolute/path/to/database.sqlite