могу ли я как-то повлиять на УРЛ-ы формируемые в колонке с иконками управления в CGridView?
ну, например: сейчас иконка Update ведет на адрес /page/update.html?id=4
а надо чтобы вела на /department/marketing/page/update.html?id=4
то есть контроллер так и останется Page, но в конфиге будут прописаны нужные УРЛ-ы и останется только как-то повесить нужную гиперссылку на соответствующую иконку
p.s. если есть необходимость прописывать УРЛ в виде http = писать приходится внутри двойных кавычек, которые, в свою очередь, находятся внутри одинарных кавыче
Решение верно. Но для чего двойные кавычки в одинарных? Это лишнее. Хорошо получается просто в одинарных писать. Это нужно, что бы значение $data->id_page не сразу подставлялось в строку, а "дожило" до момента вызова eval()
array(
'class'=>'CButtonColumn',
'updateButtonUrl'=>'/department/marketing/page/update.html?id=$data->id_page' //так должно работать
'updateButtonUrl'=>'/department/marketing/page/update.html?id={$data->id_page}' //ну или так
),
С двумя видами кавычек я никогда не заморачивался, делал в моделе функцию для генерации нужного урла (хотя это не по канону, модель не должна таким заниматься)
И просто вызывал:
'updateButtonUrl'=>'$data->getUrlToEdit()',
Ага, я понял, строка ведь передается в eval(), и мое $data->getUrlToEdit() является валидным вызовом функции. А у вас
update.html?id=$data->id_page
это невалидный PHP код, поэтому его и приходится оборачивать в кавычки, что бы получалась валидная строка.