Как получить URL-адрес к модулю в yii с включенным механизмом перезаписи?

Привет и спасибо за чтение.

Я установил пользовательский модуль yii и пытаюсь сослаться на страницу профиля, используя следующий код;

 'url' => Yii::app()->getModule('user')->profileUrl),

в моем main.php у меня есть следующее;

'urlManager' => array(
        'urlFormat' => 'path',
        'showScriptName' => false,
        'caseSensitive' => false,
        'rules' => array(
            'gii' => 'gii',
            '<controller:\w+>/<id:\d+>' => '<controller>/view',
            '<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>',
            '<controller:\w+>/<action:\w+>' => '<controller>/<action>',
            '<action>' => 'site/<action>',
        ),
    ),

и в моем файле htaccess у меня есть это;

RewriteEngine on

# if a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# otherwise forward it to index.php
RewriteRule . index.php

Это работает, и я перенаправляюсь на http://localhost/spob/user/profile, но когда я нажимаю на другую ссылку, которая ссылается на мои защищенные/представления, например, 'url' => array('employercontract/index')),, я получаю следующую ошибку Error 404 Unable to resolve the request "user/employercontract/index". Правильный путь будет http://localhost/spob/employercontract/index без пути пользователя.

Я думаю, что проблема может быть в main.php , где я объявляю правила, любое предложение будет высоко оценено, я все утро пытался решить эту проблему.


person Gunnit    schedule 17.05.2013    source источник


Ответы (1)


Если я вас правильно понял...

Попробуйте заменить это

'url' => array('employercontract/index'))

с этим

'url' => array('/employercontract/index'))

Обратите внимание на ведущую косую черту. Это сообщит UrlManager, что ссылка должна быть создана на основе корня сайта. Без него - ссылка основана на текущем модуле (пользовательском модуле в вашем случае).

Надеюсь, это поможет.

person Ruslan Polutsygan    schedule 17.05.2013
comment
это помогло, это правильный ответ, спасибо за объяснение также - person Gunnit; 17.05.2013