在 yii2 高级应用程序中获取根目录
Get Root Directory in yii2 advanced app
我想在 yii2 高级应用程序中获取我的项目的根目录。
我的Url如下
http://localhost:83/Working-copy/mySite/backend/web/index.php
我用过
Yii::setAlias('@anyname', realpath(dirname(__FILE__).'/../../'));
echo Yii::getAlias('@anyname');
但它给了我
/var/www/Working-copy/mySite
我用过
Yii::$app->request->BaseUrl
但它也给了
/Working-copy/mySite/backend/web
我只要
/Working-copy/mySite
有帮助吗??
您有两个应用程序,后端和前端,每个都有不同的 BaseURL。路径 /Working-copy/mySite
它不是任何应用程序的 BaseURL。但是如果你在params中设置你可以有这个值。
这是我的解决方案。
- 将组件创建到公共文件夹中。
添加Request.php
namespace common\components;
class Request extends \yii\web\Request {
public $web;
public $adminUrl;
public function getBaseUrl(){
return str_replace($this->web, "", parent::getBaseUrl()) . $this->adminUrl;
}
public function getActualBaseUrl(){
return str_replace($this->web, "", parent::getBaseUrl());
}
public function resolvePathInfo(){
if($this->getUrl() === $this->adminUrl){
return "";
}else{
return parent::resolvePathInfo();
}
}
}
使用Yii::$app->request->getActualBaseUrl(). // this gives me /Working-copy/mySite
我想在 yii2 高级应用程序中获取我的项目的根目录。
我的Url如下
http://localhost:83/Working-copy/mySite/backend/web/index.php
我用过
Yii::setAlias('@anyname', realpath(dirname(__FILE__).'/../../'));
echo Yii::getAlias('@anyname');
但它给了我
/var/www/Working-copy/mySite
我用过
Yii::$app->request->BaseUrl
但它也给了
/Working-copy/mySite/backend/web
我只要
/Working-copy/mySite
有帮助吗??
您有两个应用程序,后端和前端,每个都有不同的 BaseURL。路径 /Working-copy/mySite
它不是任何应用程序的 BaseURL。但是如果你在params中设置你可以有这个值。
这是我的解决方案。
- 将组件创建到公共文件夹中。
添加Request.php
namespace common\components; class Request extends \yii\web\Request { public $web; public $adminUrl; public function getBaseUrl(){ return str_replace($this->web, "", parent::getBaseUrl()) . $this->adminUrl; } public function getActualBaseUrl(){ return str_replace($this->web, "", parent::getBaseUrl()); } public function resolvePathInfo(){ if($this->getUrl() === $this->adminUrl){ return ""; }else{ return parent::resolvePathInfo(); } } }
使用
Yii::$app->request->getActualBaseUrl(). // this gives me /Working-copy/mySite