Yii 1.14通知未定义的偏移量:CUrlManager.php中的0

时间:2014-09-15 15:48:02

标签: php yii crash notice

您好我在我的Web应用程序中面对此通知,该应用程序在godaddy的子域上启动Yii 1.14并且它崩溃了我的应用程序。

未定义的偏移量:0

/home/uname/public_html/some_dir/yii/framework/web/CUrlManager.php(656)

 public function __construct($route,$pattern)
 {
     if(is_array($route))
     {
         foreach(array('urlSuffix', 'caseSensitive', 'defaultParams', 'matchValue', 'verb', 'parsingOnly') as $name)
         {
            if(isset($route[$name]))
                 $this->$name=$route[$name];
        }
         if(isset($route['pattern']))
             $pattern=$route['pattern'];
         $route=$route[0];
     }
     $this->route=trim($route,'/');

     $tr2['/']=$tr['/']='\\/';

     if(strpos($route,'<')!==false && preg_match_all('/<(\w+)>/',$route,$matches2))
     {
         foreach($matches2[1] as $name)
             $this->references[$name]="<$name>";
     }


$this->hasHostInfo=!strncasecmp($pattern,'http://',7) || !strncasecmp($pattern,'https://',8);

2 个答案:

答案 0 :(得分:2)

如果您的配置已损坏,则会发生此错误。 检查您的配置:

['components']['urlManager']['rules']

如果您在此位置设置了一个空数组,则会收到报告的错误。

return array(
    'components'    => array(
        'urlManager'   => array(
                'rules' => array(
                    '<controller:\w+>/<id:\d+>'
                        => '<controller>/view', // fine

                    array(), // Won't work!!
                    '<controller:\w+>/<id:\d+>'
                        => array(), // Won't work!!
                ),
        )
    )
)

请检查documentation并更新到最新版本1.1.15,这是一项重要的安全更新。

答案 1 :(得分:0)

我有同样的错误。在我的情况下,代码重复('urlFormat'=&gt;'路径',),像这样:

'urlManager'=>array(
        'showScriptName'=>false,
        'urlFormat'=>'path',
        'rules'=>array(
        'class'=>'application.components.UrlManager',
        'urlFormat'=>'path', //duplicate
        'showScriptName'=>false,
        'rules'=>array(
            ...
        ),
        ),
    ),

在我的'urlManager'配置中。 我删除了其中一个('urlFormat'=&gt;'路径',)并且错误消失了