gpt4 book ai didi

yii2 - Yii2如何配置全局uploadPath和uploadUrl?

转载 作者:行者123 更新时间:2023-12-04 14:26:50 24 4
gpt4 key购买 nike

我要配置Global Params在 Yii2 中。

例如这个:

  • 这将存储所有文件上传的服务器路径。

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


  • 这将存储指向文件上传服务器位置的 URL。

  • 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/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com