2015-08-13 3 views
1

Я хочу получить корневую директорию моего проекта в расширенном приложении yii2.Получить корневой каталог в расширенном приложении 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 

Любая помощь ??

+0

у меня такая же ситуация, если у вас есть решение для этого, пожалуйста, помогите мне спасибо –

+0

@renishkhunt увидеть мой ответ. он решает вашу проблему. – Dhara

ответ

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

+0

создал файл Request.php в указанном вами расположении сейчас. Получение неизвестного свойства: yii \ web \ Request :: getBaseUrl –

0

У вас есть два приложения, бэкэнд и интерфейс, каждый из которых имеет разные BaseURL. Путь /Working-copy/mySite это не BaseURL для любого приложения. Но вы можете получить это значение, если вы установите в params.

+0

Можете ли вы рассказать мне, как установить его в параметрах? – Dhara

+0

Например, в Params-local.php определить следующее: 'вернуть [ 'путь' => '/ трудоспособном копировать/MySITE', ];' И потом, вы можете использовать с 'Yii: : $ app-> params ['path'] 'глобально. –

+0

Стану статичным. этот путь находится в моем местном. но на сервере ему понравится 'mySite'. так что я хочу только корневой каталог. – Dhara