web-dev-qa-db-fra.com

Comment obtenir le répertoire racine dans yii2

Question yii2

Mon installation yii2 dans d:\wamp\www\yii2store

Je veux obtenir le chemin ci-dessus pour enregistrer les images qui seront téléchargées par moi-même ou par les utilisateurs.

J'ai passé tous les arguments disponibles dans Yii::getAlias('@webroot') (ci-dessous sont les listes d'arguments que j'ai utilisées).

@yii - répertoire framework.

@app - chemin de base de l'application en cours d'exécution.

@runtime - répertoire d'exécution.

@vendor - Répertoire des vendeurs du compositeur.

@webroot - répertoire racine Web de l'application Web en cours d'exécution.

@web - URL de base de l'application Web en cours d'exécution.

Et aussi une fois que j'aurai le chemin ci-dessus pour enregistrer les images, comment puis-je obtenir le chemin quelque chose comme ceci localhost/yiistore2/upload qui sera utilisé dans img tag src.

Encore une chose, comment puis-je créer mon propre alias avec Yii::setAlias() et où le créer pour pouvoir le charger sur chaque contrôleur.

39
Tousif Ali

Ouvrir le fichier D:\wamp\www\yiistore2\common\config\params-local.php

Coller ci-dessous le code avant le retour

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

Après avoir inséré le code ci-dessus dans le fichier params-local.php, votre fichier devrait ressembler à ceci.

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

return [
];

Maintenant pour obtenir le chemin de votre répertoire racine (dans mon cas son D:\wamp\www\yiistore2), vous pouvez utiliser le code ci-dessous dans n'importe quel fichier php.

echo Yii::getAlias('@anyname');
41
Tousif Ali

Utilisez "getAlias" dans Yii2

   \Yii::getAlias('@webroot')
35
Latikov Dmitry

Essayez ceci,

Mon installation est à D:\xampp\htdocs\advanced

\Yii::$app->basePath donnera comme D:\xampp\htdocs\advanced\backend.

\Yii::$app->request->BaseUrl donnera comme localhost\advanced\backend\web\

Vous pouvez stocker l'image en utilisant \Yii::$app->basePath et l'afficher en utilisant \Yii::$app->request->BaseUrl

23
Dency G B

En supposant que vous ayez un dossier "uploads" en écriture dans votre application:

Vous pouvez définir un paramètre comme ceci:

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

Ensuite, vous pouvez simplement utiliser le paramètre comme:

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

Selon que vous utilisiez un modèle avancé ou simple, le chemin de base sera (suivant le link fourni par phazei):

Simple @app: votre répertoire racine d'application

Advanced @app: le répertoire racine de votre application (frontend ou Backend ou console en fonction de l'endroit où vous y accédez)

De cette façon, l'application sera plus portable que d'utiliser realpath(dirname(__FILE__).'/../../'));

5
Scops

Si vous voulez obtenir le répertoire racine de votre projet yii2, en supposant que le nom de votre projet est project_app , vous devez utiliser:

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

sur Windows, vous verrez "C:\dir\to\project_app"

sur linux, vous aurez "/ var/www/dir/to/votre/project_app"

J'utilisais formellement:

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

J'espère que ça aidera quelqu'un

1
Uchephilz

Pour obtenir l'URL de base, vous pouvez l'utiliser (vous renverriez "http: // localhost/yiistore2/upload")

Yii::app()->baseUrl

Le code suivant renverrait simplement "localhost/yiistore2/upload" sans http [s]: //

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

Ou vous pourriez obtenir le chemin de la racine Web (vous renverriez "d:\wamp\www\yii2store")

Yii::getPathOfAlias('webroot')
1
Akshay Naik

Ouvrir sous le fichier C:\xampp\htdocs\project\common\config\params-local.php

Avant votre code:

<?php

return [


];

après votre code:

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

return [


];