【发布时间】:2020-11-17 07:13:41
【问题描述】:
我有一个包含 laravel 项目的电子应用程序,我想在启动时创建一个 sqlite 数据库并将其存储在 AppData 文件夹中。然后从 config 文件夹中的 database.php,我想访问 AppData 文件夹并获取数据库。在启动时创建数据库方面一切正常,但我无法在 laravel 中访问 AppData 文件夹。它会引发错误。
这是我在 AppServiceProvider 中启动时创建数据库的代码
public function boot()
{
if(!file_exists('%APPDATA%\pos\database.sqlite')){
//1. create the file
$handle = fopen('%APPDATA%\pos\database.sqlite', 'w') or die('Cannot open file');
Artisan::call('migrate');
fclose($handle);
}
Schema::defaultStringLength(191);
Blade::directive('active', function ($url) {
return "<?php echo request()->is($url.'*') || request()->is($url.'/*')? ' active' : ''; ?>";
});
}
这是我在 database.php 中的 sqlite 代码
'sqlite' => [
'driver' => 'sqlite',
'url' => env('DATABASE_URL'),
'database' => '%APPDATA%\pos\database.sqlite',
'prefix' => '',
'foreign_key_constraints' => env('DB_FOREIGN_KEYS', true),
],
我该怎么办?是否有任何替代解决方案可以在电子中检索数据库?
【问题讨论】:
-
APPDATA是一个环境变量,如果 PHP 配置为填充它,它将存在于$_ENV中。%FOO%格式仅适用于 Window shell 环境,不适用于 PHP。
标签: php laravel sqlite electron