Как получить корневой каталог в yii2
yii2 Вопрос
My yii2 установите в d:\wamp\www\yii2store
Я хочу получить выше путь для сохранения изображений, которые будут загружены мной или пользователями.
Я передаю все доступные аргументы в Yii::getAlias('@webroot')
(ниже приведены списки аргументов, которые я использовал).
@yii
- каталог фреймворков.
@app
- базовый путь для текущего приложения.
@runtime
- каталог времени выполнения.
@vendor
- каталог поставщика композитора.
@webroot
- веб-корневая директория текущего веб-приложения.
@web
- базовый URL-адрес текущего веб-приложения.
А также, как только я получу выше путь для сохранения изображений, тогда как я могу получить путь, похожий на этот localhost/yiistore2/upload
, который будет использоваться в img tag src.
Еще одна вещь, как я могу создать свой собственный псевдоним с Yii::setAlias()
и где его создать, чтобы я мог загрузить его на каждом контроллере.
Ответы
Ответ 1
Открыть файл
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');
Ответ 2
Используйте "getAlias" в Yii2
\Yii::getAlias('@webroot')
Ответ 3
Попробуйте это,
Моя установка находится в папке 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
Ответ 4
Предположим, что в вашем приложении имеется загружаемая папка "uploads":
Вы можете определить такой параметр, как это:
Yii::$app->params['uploadPath'] = realpath(Yii::$app->basePath) . '/uploads/';
Затем вы можете просто использовать параметр как:
$path1 = Yii::$app->params['uploadPath'] . $filename;
Просто в зависимости от того, используете ли вы расширенный или простой шаблон, базовый путь будет (после ссылки , предоставленной phazei):
Простой @app: корневой каталог вашего приложения
Advanced @app: корневой каталог приложения (либо внешний, либо бэкэнд или консоль в зависимости от того, где вы обращаетесь к нему)
Таким образом, приложение будет более переносимым, чем использование realpath(dirname(__FILE__).'/../../'));
Ответ 5
Чтобы получить базовый URL-адрес, вы можете использовать его (вернете "http://localhost/yiistore2/upload" )
Yii::app()->baseUrl
Следующий код вернет только "localhost/yiistore2/upload" без http [s]://
Yii::app()->getBaseUrl(true)
Или вы можете получить путь к веб-каналу (вернете "d:\wamp\www\yii2store" )
Yii::getPathOfAlias('webroot')
Ответ 6
Открыть ниже файл C:\xampp\htdocs\project\common\config\params-local.php
Перед кодом:
<?php
return [
];
после вашего кода:
<?php
yii::setAlias('@path1', 'localhost/foodbam/backend/web');
return [
];