Получить действие и имя контроллера от Url, Yii2

Я новичок в 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 для кнопки, и укажите разрешение там, но ищете другое решение.

1

Решение

я думаю это то что тебе нужно
В файле просмотра —

$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)
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]