Подтвердить что ты не робот

Как получить корневой каталог в 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() и где его создать, чтобы я мог загрузить его на каждом контроллере.

4b9b3361

Ответ 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 [


];