Не работает urlManager

Приступил к разработке проекта под Yii и столкнулся с проблемкой:


$this->createUrl('main/firm/identy') 

выводит /index.php/main/firm/identy

тогда как:


		'urlManager'=>array(

	            'urlFormat'=>'path',

	            'rules'=>array(

			'main/firm/identy'=>'search/identy',

	            ),

		),

Где копать?

В качестве параметров в createUrl передается:

  1. контроллер/действие

  2. параметры, которые встречаются в правиле

В данном случае должно быть:


$this->createUrl('search/identy') 

http://www.yiiframework.com/doc/guide/ru/topics.url

Это выдержка из руководства. Так что ваш ответ неверен в корне. RTFM

KJedi прав, слева указывается урл, справа - модуль/контроллер/экшен. Так что если у вас контроллер search, экшен - identy, то вызывать их можно будет по урлу /main/firm/identy и во всех методах, создающих урл, при указании им в качестве параметра search/identy атрибут href будет подменяться /main/firm/identy

Контроллер у меня /main/firm/identy (это контроллер модуля)

И в руководстве четко сказано, контроллер в конфиге слева, алиас справа.

Поэтому KJedi нифига не прав, а вы просто не поняли вопроса.

Так где копать, чтобы заработало?

a.spiridonov, вы сначала сами пишете одно, потом абсолютно другое.

Читаем внимательно вашу же выдержку из руководства:


array(

    'posts'=>'post/list',

    'post/<id:\d+>'=>'post/read',

    'post/<year:\d{4}>/<title>'=>'post/read',

)

С какой стороны здесь алиасы? Мне кажется слева… Методу createUrl передается контроллер, а он уже смотрит правило и генерит соответствующий урл.

Все дело в том, что в первом вопросе мне показалось что ‘main/firm/identy’ - это алиас, а search/identy - это контроллер. Я даже подумать не мог, что у вас это наоборот :)

Так что для того чтобы заработало, надо переписать правило:


 'urlManager'=>array(

                    'urlFormat'=>'path',

                    'rules'=>array(

                        'search/identy'=>'main/firm/identy',

                    ),

                ),

И вызвать метод точно так же:


$this->createUrl('main/firm/identy')

И будет вам счастье. Действительно RTFM :)

И кроме того, перед тем как кричать что ответ в корне неверен, можно обратить внимание на дату регистрации в форуме, количество постов и прикинуть, какая вероятность того что после 7 месяцев работы с Yii я могу в таких вещах ошибаться :)

Сам уже разобрался.

[b]

Компонент urlManager кеширует свои правила. После чистки кеша правила стали применяться.[/b]

P.S. Да хоть 100 лет на форуме просиди, ума не прибавится. Хоть доки правильно читать научись.

Похоже господин a.spiridonov всё-таки убедил Yii, что он делает всё правильно :D

Странно, у меня работает так как я говорю, у всех остальных кто пробовал по вроде бы тоже. Фиг знает как вы сделали наоборот, даже интересно. Можно код посмотреть? Сами правила и генерацию урла.

Я просто ошибся, когда пример кода приводил, действительно надо местами поменять. Так что извиняюсь за резкость.

Но все равно, заработало только после чистки кеша.