我在app/Helpers
目录中有一个helper.php文件。我在composer.json
中包含了该文件:
...
"files": [
"app/Helpers/helpers.php"
]
...
Helper工作正常但我不能在那里使用public_path()
方法。我需要包含另一个文件(请不要问我为什么,因为它的旧代码我不需要重写)。所以我有以下内容:
require_once public_path() . '/appadmin/bootstrap.php';
我知道默认情况下Laravel会查看/public/
文件夹,但我遇到了问题。如果我需要执行composer update
,我必须在helper.php中使用public/appadmin/bootstrap.php
路径,但在执行后我必须将该路径更改为/appadmin/bootstrap.php
才能正常工作。这就是我决定使用public_path()
方法接收两种情况的正确路径的原因。如果我使用它,我会收到错误:
Generating optimized autoload files
> Illuminate\Foundation\ComposerScripts::postUpdate
Script Illuminate\Foundation\ComposerScripts::postUpdate handling
the post-update-cmd event terminated with an exception
[ReflectionException]
Class path.public does not exist
提前感谢!
答案 0 :(得分:0)
您是否尝试将应用更新为当前版本?
框架中有一些文件需要更新。
查看配置文件,引导程序文件server.php
以及此处https://github.com/laravel/laravel/tree/develop的启动文件。
您可以打开index.php
(在您的公共目录中)并更改:
$app = require_once __DIR__.'/../bootstrap/app.php';
// set the public path to this directory
$app->bind('path.public', function() {
return __DIR__;
});
现在,当公共目录发生变化时,您无需更改公共路径。