我要配置Global Params
在 Yii2 中。
例如这个:
Yii::$app->params['uploadPath'] = Yii::$app->basePath . '/uploads/';
Yii::$app->params['uploadUrl'] = Yii::$app->urlManager->baseUrl . '/uploads/';
当我像这样设置参数时:
'uploadPath' => Yii::$app->basePath . '/uploads/',
'uploadUrl' => Yii::$app->urlManager->baseUrl . '/uploads/',
我收到此错误:
Notice: Trying to get property of non-object
我为 uploadPath 及其工作做了这个:
'uploadPath' => Yii::getAlias('@common') . '/uploads/',
但我无法获取uploadUrl 并打印图像。请帮忙,我将如何在参数中设置全局uploadUrl。
最佳答案
实际应用对象Yii::$app
在应用配置时不存在。确切地说,它是从该配置创建的,然后将运行。
所以你不能通过配置设置这些参数,而应该在其他地方设置,例如在应用程序引导期间。
要使用应用程序 boostrap 实现这一点:
1) 创建自定义类,假设名为 app\components\Bootstrap
:
namespace app\components;
use yii\base\BootstrapInterface;
class Bootstrap implements BootstrapInterface
{
public function bootstrap($app)
{
// Here you can refer to Application object through $app variable
$app->params['uploadPath'] = $app->basePath . '/uploads/';
$app->params['uploadUrl'] => $app->urlManager->baseUrl . '/uploads/';
}
}
2) 将其包含在
boostrap
中应用程序配置中的部分:'bootstrap' => [
...
'app\components\Bootstrap',
];
关于yii2 - Yii2如何配置全局uploadPath和uploadUrl?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29345064/