如何在yii2中获取根目录

时间:2014-04-18 13:43:54

标签: php frameworks yii2

yii2问题

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

我希望保存上面的路径以保存将由我或用户上传的图像。

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

@yii - 框架目录。

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

@runtime - 运行时目录。

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

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

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

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

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

7 个答案:

答案 0 :(得分:42)

打开文件 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');

答案 1 :(得分:36)

在Yii2中使用“getAlias”

   \Yii::getAlias('@webroot')

答案 2 :(得分:23)

试试这个,

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

进行展示

答案 3 :(得分:5)

假设你有一个可写的"上传"应用程序中的文件夹:

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

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

然后您只需将参数用作:

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

根据您使用的是高级模板还是简单模板,基本路径将是(在phazei提供的link之后):

  

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

     

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

这样,应用程序比使用realpath(dirname(__FILE__).'/../../'));

更具可移植性

答案 4 :(得分: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')

答案 5 :(得分:1)

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

HC=1

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

在Linux上,您将获得“ / var / www / dir / to / your / project_app”

我正式使用:

los.hc.means <- tableby(PROC ~ LOS, data=los_hc)
los.e.means <- tableby(PROC ~ LOS, data=los_e)
los.means <- merge(los.hc.means,los.e.means)
summary(los.means, title='LOS by Procedure',text=TRUE)

我希望这对某人有帮助

答案 6 :(得分:0)

在文件C:\xampp\htdocs\project\common\config\params-local.php

下面打开

在您的代码之前:

<?php

return [


];

代码之后:

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

return [


];