laravel 5.2 sqlite连接错误

时间:2016-08-06 11:50:09

标签: php sqlite laravel

我在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' => '',
    ],

为什么default意味着访问laravel website无法正常工作的sqlite。这是我应该注意的错误吗?

1 个答案:

答案 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

这就是Laravel Documentation

中提到的内容
DB_DATABASE=/absolute/path/to/database.sqlite