在yii2高级应用程序中获取根目录

时间:2015-08-13 11:31:14

标签: yii2-advanced-app base-url

我想在yii2高级应用程序中获取项目的根目录。

我的网址就像关注

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

任何帮助??

2 个答案:

答案 0 :(得分:1)

这是我的解决方案。

  1. 将组件创建到公共文件夹中。
  2. 添加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();
            }
        }
    }
    
  3. 使用Yii::$app->request->getActualBaseUrl(). // this gives me /Working-copy/mySite

答案 1 :(得分:0)

你有两个应用程序,后端和前端,每个都有不同的BaseURL。路径/Working-copy/mySite它不是任何应用的BaseURL。但如果设置为params,则可以使用此值。