wake-up-neo.net

Wie bekomme ich ein Stammverzeichnis in yii2?

yii2 Frage

Meine yii2-Installation in d:\wamp\www\yii2store

Ich möchte über den Pfad gelangen, um Bilder zu speichern, die von mir oder Benutzern hochgeladen werden.

Ich habe alle verfügbaren Argumente in Yii::getAlias('@webroot') übergeben (unten sind die Listen der Argumente, die ich verwendet habe).

@yii - Framework-Verzeichnis.

@app - Basispfad der aktuell laufenden Anwendung.

@runtime - Laufzeitverzeichnis.

@vendor - Composer-Herstellerverzeichnis.

@webroot - Webstammverzeichnis der aktuell ausgeführten Webanwendung.

@web - Basis-URL der aktuell ausgeführten Webanwendung.

Und auch wenn ich über den Pfad zum Speichern von Bildern komme, wie kann ich den Pfad so bekommen, localhost/yiistore2/upload in img Tag src verwendet werden.

Eine weitere Sache, wie kann ich mit Yii::setAlias() einen eigenen Alias ​​erstellen und wo ich diesen erstellen kann, damit ich ihn auf jedem Controller laden kann.

39
Tousif Ali

Datei öffnen D:\wamp\www\yiistore2\common\config\params-local.php

Fügen Sie den Code vor der Rückkehr ein

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

Nach dem Einfügen des obigen Codes in die Datei params-local.php sollte Ihre Datei so aussehen.

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

return [
];

Um den Pfad Ihres root-Verzeichnisses (in meinem Fall D:\wamp\www\yiistore2) zu erhalten, können Sie den folgenden Code in jeder PHP-Datei verwenden.

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

Verwenden Sie "getAlias" in Yii2

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

Probieren Sie das aus,

Meine Installation ist unter D:\xampp\htdocs\advanced

\Yii::$app->basePath wird wie D:\xampp\htdocs\advanced\backend geben.

\Yii::$app->request->BaseUrl wird wie localhost\advanced\backend\web\ geben

Sie können das Bild mit \Yii::$app->basePath speichern und mit \Yii::$app->request->BaseUrl anzeigen.

23
Dency G B

Angenommen, Sie haben einen beschreibbaren Ordner "Uploads" in Ihrer Anwendung:

Sie können einen Parameter wie folgt definieren:

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

Dann können Sie den Parameter einfach wie folgt verwenden:

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

Abhängig davon, ob Sie eine erweiterte oder einfache Vorlage verwenden, wird der Basispfad (nach dem link von phazei) angegeben:

Simple @app: Ihr Anwendungsstammverzeichnis

Advanced @app: Ihr Anwendungsstammverzeichnis (entweder Frontend oder Backend oder Konsole, je nachdem, von wo aus Sie darauf zugreifen)

Auf diese Weise wird die Anwendung portabler als die Verwendung von realpath(dirname(__FILE__).'/../../'));.

5
Scops

Wenn Sie das Stammverzeichnis Ihres yii2-Projekts verwenden möchten, vorausgesetzt, der Name Ihres Projekts ist project_app , müssen Sie Folgendes verwenden:

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

unter Windows sehen Sie "C:\dir\to\project_app"

unter Linux erhalten Sie "/ var/www/dir/zu/Ihrer/project_app".

Ich habe formell verwendet:

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

Ich hoffe das hilft jemandem

1
Uchephilz

Um die Basis-URL zu erhalten, können Sie diese verwenden (würde "http: // localhost/yiistore2/upload" zurückgeben).

Yii::app()->baseUrl

Der folgende Code würde nur "localhost/yiistore2/upload" ohne http [s] zurückgeben: //

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

Oder Sie könnten den Webroot-Pfad erhalten (würde "d:\wamp\www\yii2store" zurückgeben)

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

Öffnen Sie unter der Datei C:\xampp\htdocs\project\common\config\params-local.php

Vor Ihrem Code:

<?php

return [


];

nach deinem code:

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

return [


];