我有包含laravel项目的 Electron 应用程序,我想在启动时创建一个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),
],
我该怎么办 ?是否有其他解决方案可用于以 Electron 方式检索数据库?
最佳答案
APPDATA
是一个环境变量。您可以使用Laravel的env()
帮助器函数进行访问。
$appdata = env('APPDATA');
确保当APPDATA
环境变量不存在时,您有一个明智的备份计划。
关于php - 如何在Laravel中访问%APPDATA%,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63124081/