2018-07-30 08:17:08 1509次浏览 2条回答 0 悬赏 30 金钱

《a href="www.baidu.com&id=1" id="1"》访问一《/a》

《a href="www.baidu.com&id=2" id="2"》访问二《/a》

《a href="www.baidu.com&id=3" id="3"》访问三《/a》

《a href="www.baidu.com&id=4" id="4"》访问四《/a》

《a href="www.baidu.com&id=5" id="5"》访问五《/a》

问题是这样的,A用户可以访问 id 为1 2 4,B用户可以访问 3,4,5 请问怎么做啊,有没有类似于权限控制的那种做法

最佳答案

  • sexushuai 发布于 2018-07-30 10:29 举报

    2个方案,1在页面判断用户,根据登录的用户显示隐藏链接,2在控制器中根据登录用户和参数判断是否有权限,抛出异常

    1 条回复
    回复于 2018-07-30 11:54 回复

    谢谢 大佬的回答

  • 回答于 2018-07-30 08:38 举报

    Screenshot from 2018-07-30 08-25-27.png

    上图是 GridView 中 ActionColumn 中的一个截图,可以根据用户的权限决定链接是否可以点击,和你要的效果类似。通过配置 DataColumn buttons 可以实现,例如:

    [
        'class' => 'drodata\grid\ActionColumn',
        'template' => '{view}',
        'buttons' => [
            'view' => function ($url, $model, $key) {
                if (in_array($model->id, [1, 3, 5]) {
                    echo Html::a('view', '#');
                } else {
                    echo 禁用图标
                }
            },
        ],
    ]
    
    1 条回复
    回复于 2018-07-30 08:56 回复

    关键是所访问的网址是一样的 但传递参数id是不一样的 ,这样权限控制就已经失效了,很感谢大神的解答

    觉得很赞
您需要登录后才可以回答。登录 | 立即注册
郝立国
总监

郝立国

注册时间:2017-02-09
最后登录:2024-01-11
在线时长:77小时3分
  • 粉丝6
  • 金钱2925
  • 威望110
  • 积分4795

热门问题