Я новичок в Yii, и не уверен, что можно получить имена действий и контроллеров из URL:
/my_proj/backend/web/index.php?r=user%2Fcreate
Мне нужно, чтобы получить их в контроллере (php
) или на стороне клиента (jQuery
).
Мне это нужно, потому что по нажатию кнопки:
<?= Html::button(Yii::t('app', Yii::t('app','Create')), ['value' => Url::to(['create']),'class' => 'btn btn-success modalButton', 'id' => 'create-user']) ?>
Я хочу проверить, есть ли у текущего пользователя разрешения на create
действие. Мне нужно это на стороне клиента, потому что я показываю представление создания в модальном диалоговом окне, и если у пользователя нет разрешения, мне не нужно показывать всплывающее окно.
$(".modalButton").click(function(){
var permission = ?? //$(this)[0].id; //id works ok, but looking for another way
$.get('index.php?r=site/check-permission', {'permission': permission}, function(isAllowed){
if(isAllowed == 1)
{
$(".modal").modal("show")
.find(".modalContent")
.load($(".modalButton").attr('value'));
}
});
return false;
});
Я пытался использовать id
для кнопки, и укажите разрешение там, но ищете другое решение.
я думаю это то что тебе нужно
В файле просмотра —
$this->uniqueid - controller name
$this->action->Id - action name.
// ($this is CController instance)
Это для текущего контроллера
<?php echo $this->getUniqueId();?>
ИЛИ ЖЕ
Yii::app()->controller->id
ИЛИ ЖЕ
Yii::app()->getController()->getId()
ИЛИ ЖЕ
Да, вы можете получить текущий маршрут контроллера / действия, изменив правило urlManager:
Yii::app()->urlManager->parseUrl(Yii::app()->request)
Других решений пока нет …