3

我已经设置了 Yii 2 基本应用程序,并在config/web.php我使用:

    urlManager' => [
            'class' => 'yii\web\UrlManager',
            'enablePrettyUrl' => true,
            'showScriptName' => false,
        ]

components

但是当我尝试运行我的应用程序时,我收到以下错误:

Invalid Call – yii\base\InvalidCallException 设置只读属性:yii\web\Application::urlManager>

不过,相同urlManager的代码在高级应用程序中运行良好。任何想法为什么?

4

3 回答 3

5
Invalid Call – yii\base\InvalidCallException Setting read-only property: yii\web\Application::urlManager>

从此错误消息中,您似乎正在尝试urlManager在不允许的应用程序组件中重新定义。

urlManager,以及其他几个组件,例如security预定义为核心应用程序组件。最有可能的是,重新定义这些核心组件会导致意外行为(尽管我没有目睹任何行为)。

尝试删除class配置中的密钥。

'urlManager' => [
        'enablePrettyUrl' => true,
        'showScriptName' => false,
    ]
于 2014-09-25T04:01:56.127 回答
2

以下是正确的配置。

'components' => [
    'urlManager' => [
        //'class' => 'yii\web\UrlManager',
        'enablePrettyUrl' => true,
        'showScriptName' => false,
        'rules'=>[
        ],
    ],
],
于 2015-07-15T07:17:52.117 回答
0

请使用此序列

'log' => [
            'traceLevel' => YII_DEBUG ? 3 : 0,
            'targets' => [
                [
                    'class' => 'yii\log\FileTarget',
                    'levels' => ['error', 'warning'],
                ],
            ],
        ],
        'mailer'=>[
        'class'=>'yii\swiftmailer\Mailer',
        'useFileTransport'=> false,
        ],
        'authManager'=>
        [
            'class'=>'yii\rbac\DbManager',
            'defaultRoles'=> ['guest'],
        ],
于 2015-12-22T10:30:25.147 回答