【问题标题】:How to access %APPDATA% in laravel如何在 laravel 中访问 %APPDATA%
【发布时间】: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


【解决方案1】:

APPDATA 是一个环境变量。你可以使用 Laravel 的 env() 辅助函数来访问它。

$appdata = env('APPDATA');

确保当APPDATA 环境变量不存在时,您有一个合理的备份计划。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-06
    • 1970-01-01
    相关资源
    最近更新 更多