【问题标题】:How to Create a directory and file in Laravel如何在 Laravel 中创建目录和文件
【发布时间】:2019-03-05 17:00:37
【问题描述】:

我想在laravel中实现本地化https://laravel.com/docs/5.8/localization

我希望允许用户设置 .json 文件并上传键值翻译。

为此,我需要在resources/lang/' . $request->language 上创建一个目录$path = base_path('resources/lang/' . $request->language . '/');,然后创建一个json 文件$request->language. '.json'

我试过了

File::makeDirectory(base_path()."'resources/lang/' . $request->language . '/'", $mode = 0777, true, true);

然后

//Write File
$newJsonString = json_encode($request->translation, JSON_PRETTY_PRINT);
file_put_contents(base_path($path . $request->language. '.json'), stripslashes($newJsonString));

由于某些原因,它甚至不创建目录。我会错过什么吗?

【问题讨论】:

标签: laravel laravel-5


【解决方案1】:

我通过这样的测试创建了目录,请验证你是filesystem.php在config文件夹和storage文件夹的权限。

// This will create folder in storage/app/folder_name
Route::get('/test',function(){
    Storage::disk('local')->makeDirectory('app/testFolder');
});

// This will create folder in resources/lang/folder_name
Route::get('/test',function(){
    $result = File::makeDirectory(base_path().'/resources/lang/testFolder');
    dd($result); // return true if folder created
});


// For more clarity try running this 
Route::get('/test',function(){
    $langs = ['en', 'fr', 'de','bs'];
    foreach ($langs as $key) {
        $path = base_path().'/resources/lang/'.$key;
        if (!File::exists($path)){
            $result = File::makeDirectory($path);
            dump("New Folder Created : ".$key);
        }else{
            dump("Folder Already Exist : ".$key);
        }
    }
    dd("ALL DONE");
});

希望对你有帮助

【讨论】:

  • 我要在这里resources/lang/
  • 如果有任何问题请回复。
猜你喜欢
  • 2017-04-27
  • 1970-01-01
  • 2013-09-25
  • 1970-01-01
  • 2017-11-24
  • 2011-08-03
  • 1970-01-01
  • 1970-01-01
  • 2012-06-20
相关资源
最近更新 更多