laravel 5.2 sqlite连接错误


laravel 5.2 sqlite connection error

我在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 migrateSampleController都能工作,我把它放在了config/database.php文件中:

'connections' => [
    'sqlite' => [
        'driver' => 'sqlite',
        'database' => database_path('database.sqlite'),
        'prefix' => '',
    ],

为什么laravel网站上给出的default访问sqlite的方式不起作用。这是一个我应该注意的错误吗?

config.php文件中的正常配置应为

'sqlite' => [
        'driver'   => 'sqlite',
        'database' => env('DB_DATABASE', database_path('database.sqlite')),
        'prefix'   => '',
    ],

此外,在.env文件中提及DB_DATABASE的适当方式是指定绝对文件名,例如/var/www/laravel/database/database.sqlite,而不是相对位置。

例如,在Windows

DB_DATABASE=C:'wamp'www'laravel'database'database.sqlite

这就是Laravel文档中提到的内容

DB_DATABASE=/absolute/path/to/database.sqlite