Кажется, что вы хотите динамически изменять ссылку ПОСЛЕ отображения страницы с помощью клиентского JavaScript.Но имеет больше смысла динамически отображать другую ссылку в первый раз, во время процесса рендеринга PHP размером с сервер.В конце концов, контроллер генерирует представление!Я получал бы идентификатор пользователя от контроллера во время запроса страницы, передавал идентификатор в представление и затем динамически создавал ссылку в представлении при начальной загрузке страницы.
Если вы изменяете ссылку в layout (не представление), тогда лучше всего создать переменную в контроллере и установить эту переменную вместе с представлением.Посмотрите, как Yii использует для этого переменные $ layout, $ menu и $ breadcrumbs.
Предполагая, что пользователь вошел в систему и вы хотите его ID, вы можете получить идентификатор изобъект Yii :: app (), например, так:
<?php echo CHtml::link('Edit user',array('user/edit','userId'=>Yii::app()->user->id)); ?>
Но в этот момент вы можете просто запросить идентификатор пользователя в контроллере, и вам не нужно создавать такую ссылку, как эта,
Предполагая, что вы хотите другой идентификатор пользователя, чем вошедший в систему пользователь, передайте этот идентификатор ($ userId) из контроллера в представление и просто сделайте это (как сказал Мойерс):
<?php echo CHtml::link('Edit user',array('user/edit','userId'=>$userId)); ?>
Это создаст следующую ссылку (где $ userId = 99999999):
<a href="/user/edit?userId=99999999">Edit user</a>
Таким образом, когда по ссылке нажимают, в actionEdit () у вас теперь есть доступ кID пользователя с помощью переменной GET $ _GET ['userId'].
СЕЙЧАС, если вы хотите изменить уже созданную ссылку, вам нужно будет использовать jQuery.Но вам нужно будет более подробно объяснить, почему вы это делаете и что вызывает изменение ссылки (выпадающее меню?).