如何在yii2中获取根目录

Tou*_*Ali 40 php frameworks yii2

yii2问题

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

我想通过上面的路径保存将由我或用户上传的图像.

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

@yii - 框架目录.

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

@runtime - 运行时目录.

@vendor - Composer供应商目录.

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

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

而且,一旦我将上面的路径保存图像,那么我怎么能得到这样的路径localhost/yiistore2/upload在img标签src中使用.

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

Tou*_*Ali 42

打开文件 D:\wamp\www\yiistore2\common\config\params-local.php

返回之前粘贴下面的代码

Yii::setAlias('@anyname', realpath(dirname(__FILE__).'/../../'));
Run Code Online (Sandbox Code Playgroud)

在params-local.php文件中插入上面的代码后,您的文件应如下所示.

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

return [
];
Run Code Online (Sandbox Code Playgroud)

现在要获取你的根目录(在我的情况下是它的D:\wamp\www\yiistore2)目录,你可以在任何php文件中使用下面的代码.

echo Yii::getAlias('@anyname');
Run Code Online (Sandbox Code Playgroud)


Lat*_*try 37

在Yii2中使用"getAlias"

   \Yii::getAlias('@webroot')
Run Code Online (Sandbox Code Playgroud)


Den*_*G B 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


小智 6

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

echo Yii::getAlias('@app');
Run Code Online (Sandbox Code Playgroud)

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

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

我正式使用:

echo Yii::getAlias('@webroot').'/..';
Run Code Online (Sandbox Code Playgroud)

我希望这可以帮助别人


Sco*_*ops 5

假设您的应用程序中有一个可写的"uploads"文件夹:

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

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

然后你可以简单地使用参数:

$path1 = Yii::$app->params['uploadPath'] . $filename;
Run Code Online (Sandbox Code Playgroud)

根据您是否使用高级或简单模板,基本路径将是(遵循phazei提供的链接):

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

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

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