Yii 1.14 обратите внимание на Неопределенное смещение: 0 в CUrlManager.php
Здравствуйте, я сталкиваюсь с этим уведомлением в своем веб-приложении, которое работает на Yii 1.14 в поддомене в godaddy, и это приводит к сбою моего приложения.
Неопределенное смещение: 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 answers
Эта ошибка возникает, если ваша конфигурация повреждена. Проверьте свою конфигурацию в:
['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!!
),
)
)
)
Пожалуйста, ознакомьтесь с документацией и обновите ее до последней версии 1.1.15, которая является важным обновлением для системы безопасности.
У меня была та же ошибка. В моем случае это был дубликат кода ('URLFORMAT'=>'путь'), например:
'urlManager'=>array(
'showScriptName'=>false,
'urlFormat'=>'path',
'rules'=>array(
'class'=>'application.components.UrlManager',
'urlFormat'=>'path', //duplicate
'showScriptName'=>false,
'rules'=>array(
...
),
),
),
В моей конфигурации "urlManager". Я удалил один из них ('urlformat'=>'путь'), и ошибка исчезла