Как получить корневой каталог в yii2

Yii2 Вопрос

Моя установка yii2 в d:\wamp\www\yii2store

Я хочу получить указанный выше путь для сохранения изображений, которые будут загружены мной или пользователями.

Я передал все доступные аргументы в Yii::getAlias('@webroot') (ниже приведены списки аргументов, которые я использовал).

@yii - каталог фреймворка.

@app - базовый путь запущенного в данный момент приложения.

@runtime - каталог времени выполнения.

@vendor - Каталог поставщиков Composer.

@webroot - корневой веб-каталог запущенного в данный момент веб-приложения.

@web — базовый URL запущенного в данный момент веб-приложения.

А также, как только я получу указанный выше путь для сохранения изображений, как я могу получить путь, подобный этому localhost/yiistore2/upload, для использования в теге img src.

Еще одна вещь, как я могу создать свой собственный псевдоним с Yii::setAlias() и где его создать, чтобы я мог загрузить его на каждый контроллер.


person Tousif Ali    schedule 18.04.2014    source источник
comment
Вот список стандартных псевдонимов, доступных в Yii2: -and-advanced-app/" rel="nofollow noreferrer">yiiframework.com/wiki/667/   -  person phazei    schedule 24.07.2014
comment
Уже прошел, но не смог получить то, что хочу, поэтому ниже правильное решение.   -  person Tousif Ali    schedule 27.07.2014


Ответы (7)


Открыть файл D:\wamp\www\yiistore2\common\config\params-local.php

Вставьте ниже код перед возвратом

Yii::setAlias('@anyname', realpath(dirname(__FILE__).'/../../'));

После вставки вышеуказанного кода в файл params-local.php ваш файл должен выглядеть так.

Yii::setAlias('@anyname', realpath(dirname(__FILE__).'/../../'));

return [
];

Теперь, чтобы получить путь к вашему корневому каталогу (в моем случае это D:\wamp\www\yiistore2), вы можете использовать приведенный ниже код в любом файле php.

echo Yii::getAlias('@anyname');
person Tousif Ali    schedule 22.04.2014
comment
Как получить URL этого каталога? - person Samar Haider; 18.01.2015
comment
Это расположение корневого каталога. Что вы подразумеваете под URL-адресом этого каталога, пожалуйста, покажите мне несколько примеров по этому вопросу. - person Tousif Ali; 02.03.2015

Используйте «getAlias» в Yii2

   \Yii::getAlias('@webroot')
person Latikov Dmitry    schedule 21.04.2014

Попробуйте это,

Моя установка находится в D:\xampp\htdocs\advanced

\Yii::$app->basePath даст как D:\xampp\htdocs\advanced\backend.

\Yii::$app->request->BaseUrl поставит лайк localhost\advanced\backend\web\

Вы можете сохранить изображение с помощью \Yii::$app->basePath и показать его с помощью \Yii::$app->request->BaseUrl

person Dency G B    schedule 21.04.2014

Предположим, у вас есть доступная для записи папка «загрузки» в вашем приложении:

Вы можете определить параметр следующим образом:

Yii::$app->params['uploadPath'] = realpath(Yii::$app->basePath) . '/uploads/';

Затем вы можете просто использовать параметр как:

$path1 = Yii::$app->params['uploadPath'] . $filename;

Просто в зависимости от того, используете ли вы расширенный или простой шаблон, базовый путь будет (после ссылка предоставлена ​​phazei):

Simple @app: корневой каталог вашего приложения

Расширенный @app: корневой каталог вашего приложения (интерфейсный, бэкенд или консоль, в зависимости от того, откуда вы к нему обращаетесь)

Таким образом, приложение будет более переносимым, чем при использовании realpath(dirname(__FILE__).'/../../'));.

person Scops    schedule 17.04.2015

Если вы хотите получить корневой каталог вашего проекта yii2, предполагая, что имя вашего проекта project_app, вам нужно использовать:

echo Yii::getAlias('@app');

в окнах вы увидите "C:\dir\to\project_app"

в Linux вы получите "/var/www/dir/to/your/project_app"

Я официально использовал:

echo Yii::getAlias('@webroot').'/..';

Я надеюсь, что это поможет кому-то

person Uchephilz    schedule 21.09.2018

Чтобы получить базовый URL-адрес, вы можете использовать это (вернет «http://localhost/yiistore2/upload»)

Yii::app()->baseUrl

Следующий код вернет просто «localhost/yiistore2/upload» без http[s]://

Yii::app()->getBaseUrl(true)

Или вы можете получить корневой путь (вернет «d:\wamp\www\yii2store»)

Yii::getPathOfAlias('webroot')
person Akshay Naik    schedule 18.04.2014
comment
Эти способы я уже пробовал, в yii2 их больше нет. - person Tousif Ali; 18.04.2014
comment
в yii2: Yii::$app->getUrlManager()->getBasseUrl() - person d.raev; 21.11.2014
comment
для Yii2 вы можете получить базовый путь с помощью Yii::$app-›basePath - person d.raev; 18.02.2015
comment
по-прежнему не отвечает на вопрос, как получить baseUrl вот так: localhost Yii::$app-›basePath выдаст что-то вроде : /Users/xxx/src/yii2-приложение - person Picrasma; 07.03.2018

Откройте ниже файл C:\xampp\htdocs\project\common\config\params-local.php

Перед вашим кодом:

<?php

return [


];

после вашего кода:

<?php
yii::setAlias('@path1', 'localhost/foodbam/backend/web');

return [


];
person Chandrashekhar Somwanshi    schedule 23.03.2015