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()
を使用して独自のエイリアスを作成する方法と、すべてのコントローラーにロードできるようにこれを作成する場所を指定できます。
ファイルを開く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');
Yii2で「getAlias」を使用する
\Yii::getAlias('@webroot')
これを試して、
私のインストールは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
を使用して表示できます
アプリケーションに書き込み可能な「アップロード」フォルダーがあると仮定します。
次のようなパラメーターを定義できます。
Yii::$app->params['uploadPath'] = realpath(Yii::$app->basePath) . '/uploads/';
次に、パラメータを次のように単純に使用できます。
$path1 = Yii::$app->params['uploadPath'] . $filename;
高度なテンプレートを使用しているか単純なテンプレートを使用しているかに応じて、ベースパスは(phazeiが提供する link に従います):
シンプルな@app:アプリケーションのルートディレクトリ
高度な@app:アプリケーションのルートディレクトリ(アクセスする場所に応じてフロントエンドまたはバックエンドまたはコンソール)
このようにして、アプリケーションはrealpath(dirname(__FILE__).'/../../'));
を使用するよりも移植性が高くなります
プロジェクトの名前が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').'/..';
これが誰かを助けることを願っています
ベース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')
以下のファイルを開きますC:\xampp\htdocs\project\common\config\params-local.php
コードの前:
<?php
return [
];
コードの後:
<?php
yii::setAlias('@path1', 'localhost/foodbam/backend/web');
return [
];