web-dev-qa-db-ja.com

yii2でルートディレクトリを取得する方法

yii2質問

Yii2をd:\wamp\www\yii2storeにインストールします

私またはユーザーがアップロードする画像を保存するために上記のパスを取得したいです。

Yii::getAlias('@webroot')で利用可能なすべての引数を渡しました(以下は使用した引数のリストです)。

@yii-フレームワークディレクトリ。

@app-現在実行中のアプリケーションのベースパス。

@runtime-ランタイムディレクトリ。

@vendor-Composerベンダーディレクトリ。

@webroot-現在実行中のWebアプリケーションのWebルートディレクトリ。

@web-現在実行中のWebアプリケーションのベースURL。

また、画像を保存するために上記のパスを取得したら、imgタグsrcで使用するこのlocalhost/yiistore2/uploadのようなパスを取得するにはどうすればよいですか?.

もう1つ、Yii::setAlias()を使用して独自のエイリアスを作成する方法と、すべてのコントローラーにロードできるようにこれを作成する場所を指定できます。

39
Tousif Ali

ファイルを開く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');
42
Tousif Ali

Yii2で「getAlias」を使用する

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

これを試して、

私のインストールはD:\ xampp\htdocs\advancedにあります

\Yii::$app->basePathD:\xampp\htdocs\advanced\backendのようになります。

\Yii::$app->request->BaseUrllocalhost\advanced\backend\web\のようになります

\Yii::$app->basePathを使用して画像を保存し、\Yii::$app->request->BaseUrlを使用して表示できます

23
Dency G B

アプリケーションに書き込み可能な「アップロード」フォルダーがあると仮定します。

次のようなパラメーターを定義できます。

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

次に、パラメータを次のように単純に使用できます。

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

高度なテンプレートを使用しているか単純なテンプレートを使用しているかに応じて、ベースパスは(phazeiが提供する link に従います):

シンプルな@app:アプリケーションのルートディレクトリ

高度な@app:アプリケーションのルートディレクトリ(アクセスする場所に応じてフロントエンドまたはバックエンドまたはコンソール)

このようにして、アプリケーションはrealpath(dirname(__FILE__).'/../../'));を使用するよりも移植性が高くなります

5
Scops

プロジェクトの名前がproject_appであると仮定して、yii2プロジェクトが使用するルートディレクトリを取得する場合は、以下を使用する必要があります。

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

windowsでは、「C:\ dir\to\project_app」が表示されます

linuxでは、「/ var/www/dir/to/your/project_app」が取得されます。

私は正式に使用していました:

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

これが誰かを助けることを願っています

1
Uchephilz

ベースURLを取得するには、これを使用できます( "http:// localhost/yiistore2/upload"を返します)

Yii::app()->baseUrl

次のコードは、http [s]://なしで「localhost/yiistore2/upload」のみを返します。

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

または、webrootパスを取得できます(「d:\ wamp\www\yii2store」を返します)

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

以下のファイルを開きますC:\xampp\htdocs\project\common\config\params-local.php

コードの前:

<?php

return [


];

コードの後:

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

return [


];