php - yii2 alias
Cómo obtener el directorio raíz en yii2 (6)
Abra debajo del archivo C:/xampp/htdocs/project/common/config/params-local.php
Antes de tu código:
<?php
return [
];
después de tu código:
<?php
yii::setAlias(''@path1'', ''localhost/foodbam/backend/web'');
return [
];
yii2 Pregunta
Mi yii2 se instala en d:/wamp/www/yii2store
Quiero ir por encima de la ruta para guardar las imágenes que subirán yo o los usuarios.
He pasado todos los argumentos disponibles en Yii::getAlias(''@webroot'')
(a continuación se muestran las listas de argumentos que he utilizado).
@yii
- directorio de framework.
@app
- ruta base de la aplicación actualmente en ejecución.
@runtime
- directorio de tiempo de ejecución.
@vendor
- Directorio de proveedores de Composer.
@webroot
: directorio raíz web de la aplicación web actualmente en ejecución.
@web
- URL base de la aplicación web actualmente en ejecución.
Y también, una vez que obtenga el camino superior para guardar las imágenes, ¿cómo puedo obtener un camino como este localhost/yiistore2/upload
para usar en img tag src?
Una cosa más es cómo puedo crear mi propio alias con Yii::setAlias()
y dónde crear esto para poder cargarlo en cada controlador.
Abra el archivo D:/wamp/www/yiistore2/common/config/params-local.php
Pegar el código debajo antes de regresar
Yii::setAlias(''@anyname'', realpath(dirname(__FILE__).''/../../''));
Después de insertar el código anterior en el archivo params-local.php, su archivo debería verse así.
Yii::setAlias(''@anyname'', realpath(dirname(__FILE__).''/../../''));
return [
];
Ahora para obtener la ruta de su directorio raíz (en mi caso es D:/wamp/www/yiistore2
) puede usar el código a continuación en cualquier archivo php.
echo Yii::getAlias(''@anyname'');
Para obtener la URL base, puede usar esto (devolvería "http: // localhost / yiistore2 / upload")
Yii::app()->baseUrl
El siguiente código devolvería solo "localhost / yiistore2 / upload" sin http [s]: //
Yii::app()->getBaseUrl(true)
O podría obtener la ruta webroot (devolvería "d: / wamp / www / yii2store")
Yii::getPathOfAlias(''webroot'')
Prueba esto,
Mi instalación está en D: / xampp / htdocs / advanced
/Yii::$app->basePath
dará como D:/xampp/htdocs/advanced/backend
.
/Yii::$app->request->BaseUrl
dará como localhost/advanced/backend/web/
Puede almacenar la imagen usando /Yii::$app->basePath
y mostrarla usando /Yii::$app->request->BaseUrl
Supongamos que tiene una carpeta "subir" grabable en su aplicación:
Puede definir un parámetro como este:
Yii::$app->params[''uploadPath''] = realpath(Yii::$app->basePath) . ''/uploads/'';
Entonces puedes simplemente usar el parámetro como:
$path1 = Yii::$app->params[''uploadPath''] . $filename;
Dependiendo de si está utilizando una plantilla avanzada o simple, la ruta base será (siguiendo el yiiframework.com/wiki/667/… provisto por phazei):
Simple @app: el directorio raíz de su aplicación
Advanced @app: el directorio raíz de su aplicación (ya sea frontend o backend o consola dependiendo de desde dónde acceda)
De esta forma, la aplicación será más portátil que usar realpath(dirname(__FILE__).''/../../''));
Use "getAlias" en Yii2
/Yii::getAlias(''@webroot'')