Lumen 从文件中读取 JSON

pab*_*ros 4 php laravel lumen

我正在使用Lumen Framework并且正在尝试从json文件中为我的数据库设置种子。我正在做这样的事情:

public function run()
{
    $json = json_decode(file_get_contents('database/seed/file.json'), true);
    ...
}
Run Code Online (Sandbox Code Playgroud)

但是当我执行种子命令时php artisan db:seed,我收到此错误:

[错误异常]

file_get_contents(database/seed/file.json):无法打开流:没有这样的文件或目录

我试图这样做:https : //stackoverflow.com/a/34201616/3701102,我得到了这个:

[Symfony\Component\Debug\Exception\FatalThrowableError]

调用未定义的函数 public_path()

任何想法我做错了什么?

谢谢

小智 5

找出脚本路径使用 __DIR__

public function run()
{
    dd(__DIR__);
}
Run Code Online (Sandbox Code Playgroud)

对于此示例,假设输出为/home/vagrant/Code/app/Http/Controllers.

现在这应该可以工作(如果文件权限正确)

public function run()
{
    $file_path = realpath(__DIR__ . '/../../database/seed/file.json');
    $json = json_decode(file_get_contents($file_path), true);
    // ...
}
Run Code Online (Sandbox Code Playgroud)