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