50

yii2 问题

我的yii2安装在d:\wamp\www\yii2store

我想获得以上路径来保存将由我或用户上传的图像。

我已经传递了所有可用的参数Yii::getAlias('@webroot')(下面是我使用的参数列表)。

@yii- 框架目录。

@app- 当前运行的应用程序的基本路径。

@runtime- 运行时目录。

@vendor- 作曲家供应商目录。

@webroot- 当前正在运行的 Web 应用程序的 Web 根目录。

@web- 当前运行的 Web 应用程序的基本 URL。

而且,一旦我将获得保存图像的路径,那么我怎样才能获得类似这样的路径localhost/yiistore2/upload以在 img 标签 src 中使用。

还有一件事我如何创建自己的别名Yii::setAlias()以及在哪里创建它,以便我可以在每个控制器上加载它。

4

7 回答 7

50

打开文件 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');
于 2014-04-22T12:04:57.333 回答
46

在 Yii2 中使用“getAlias”

   \Yii::getAlias('@webroot')
于 2014-04-21T09:02:01.570 回答
29

试试这个,

我的安装在 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

于 2014-04-21T08:49:00.123 回答
5

假设您的应用程序中有一个可写的“上传”文件夹:

你可以像这样定义一个参数:

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

然后您可以简单地将参数用作:

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

取决于您使用的是高级模板还是简单模板,基本路径将是(按照phazei 提供的链接):

简单的@app:你的应用程序根目录

高级@app:您的应用程序根目录(前端或后端或控制台,取决于您从何处访问它)

这样应用程序将比使用更便携realpath(dirname(__FILE__).'/../../'));

于 2015-04-17T20:13:39.923 回答
4

如果你想获取你的 yii2 项目使用的根目录,假设你的项目名称是project_app,你需要使用:

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

在 Windows 上,您会看到“C:\dir\to\project_app”

在 Linux 上你会得到“/var/www/dir/to/your/project_app”

我正式使用:

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

我希望这可以帮助别人

于 2018-09-21T04:21:37.250 回答
1

要获取基本 URL,您可以使用它(将返回“http://localhost/yiistore2/upload”)

Yii::app()->baseUrl

以下代码将仅返回“localhost/yiistore2/upload”而没有 http[s]://

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

或者您可以获取 webroot 路径(将返回“d:\wamp\www\yii2store”)

Yii::getPathOfAlias('webroot')
于 2014-04-18T13:54:32.607 回答
0

打开下面的文件C:\xampp\htdocs\project\common\config\params-local.php

在您的代码之前:

<?php

return [


];

在你的代码之后:

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

return [


];
于 2015-03-23T21:15:04.400 回答