Здравствуйте, я сталкиваюсь с этим уведомлением в моем веб-приложении, которое работает на 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);
Эта ошибка возникает, если ваша конфигурация повреждена.
Проверьте вашу конфигурацию в:
['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’ => ‘path’,) примерно так:
'urlManager'=>array(
'showScriptName'=>false,
'urlFormat'=>'path',
'rules'=>array(
'class'=>'application.components.UrlManager',
'urlFormat'=>'path', //duplicate
'showScriptName'=>false,
'rules'=>array(
...
),
),
),
в моем конфиге ‘urlManager’.
Я удалил один из них (‘urlFormat’ => ‘path’,) и ошибка исчезла