我在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。这是我应该注意的错误吗?

最佳答案

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

关于php - laravel 5.2 sqlite连接错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38803973/

10-16 21:24