2015-12-25 128 views
1

进出口新的Yii的,而不是肯定的是它可以从网址获得动作和控制器的名称,如:获得来自URL操作和控制器的名称,Yii2

/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的按钮,并有指定的权限,但在寻找另一种解决方案。

回答

0

我觉得这是你所需要的 鉴于文件 -

$this->uniqueid - controller name 
$this->action->Id - action name. 

// ($this is CController instance) 

这是电流控制器

<?php echo $this->getUniqueId();?> 

OR

Yii::app()->controller->id 

OR

Yii::app()->getController()->getId() 

see this

OR

是的,你可以得到当前控制器/行动路线,通过反转urlManager规则:

Yii::app()->urlManager->parseUrl(Yii::app()->request) 
+0

这得到电流控制器的动作名称,但我有'用户'模型的'index'视图中的'创建'按钮,并且我正在检查另一个控制器'site'的权限 –

+0

你可以使用urlManager吗? –

+0

它不工作,我得到服务器错误 –

相关问题