Yii 1.14 уведомление Неопределенное смещение: 0 в CUrlManager.Stack Overflow

Здравствуйте, я сталкиваюсь с этим уведомлением в моем веб-приложении, которое работает на 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

Решение

Эта ошибка возникает, если ваша конфигурация повреждена.
Проверьте вашу конфигурацию в:

['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, которая является важным обновлением безопасности.

2

Другие решения

У меня была такая же ошибка. В моем случае это был дубликат кода (‘urlFormat’ => ‘path’,) примерно так:

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

в моем конфиге ‘urlManager’.
Я удалил один из них (‘urlFormat’ => ‘path’,) и ошибка исчезла

0