拉拉维尔 5 变public_path()
我正在尝试将文件夹移动到其他位置。但是,我找不到修改变量的地方。现在,“public_path()”返回错误的文件夹路径。public
public_path()
在哪里可以设置变量 ?public_path()
我正在尝试将文件夹移动到其他位置。但是,我找不到修改变量的地方。现在,“public_path()”返回错误的文件夹路径。public
public_path()
在哪里可以设置变量 ?public_path()
您可以使用 ioc 容器覆盖公共路径:
对我而言,完美的工作是增加了以下三行:public/index.php
$app->bind('path.public', function() {
return __DIR__;
});
虽然接受的答案适用于来自 HTTP 的请求,但它不适用于 。artisan
如果需要了解自定义公共路径,则需要扩展 Laravel 主应用程序类。我知道这听起来很可怕,但实际上非常简单。artisan
您需要做的就是遵循:
步骤1:在文件中:更改变量的第一个声明bootstrap/app.php
$app
$app = new Illuminate\Foundation\Application(
realpath(__DIR__.'/../')
);
以反映您自己的自定义应用程序类:
$app = new App\Application(
realpath(__DIR__.'/../')
);
第 2 步:在某个位置定义自定义应用程序类。例如app/Application.php
<?php namespace App;
class Application extends \Illuminate\Foundation\Application
{
}
恭喜!您已经扩展了 Laravel 核心应用程序类。
第 3 步:覆盖该方法。将Laravel原始方法复制并粘贴到您的新类中,并根据需要进行更改。在我的特殊情况下,我确实喜欢这样:publicPath
public function publicPath()
{
return $this->basePath.DIRECTORY_SEPARATOR.'..'.DIRECTORY_SEPARATOR.'public_html';
}
就是这样!可以采用相同的方式覆盖 Application 类中的任何方法。