如何控制codeigniter中的视图项

时间:2015-11-24 08:40:32

标签: php codeigniter

我在控制器中应用了CI框架和用户,组权限控制,

但是我如何在视图中的某些按钮,链接等中应用限制? 例如,下面是新的,编辑,删除按钮的代码,如果我想disble \ hide这个按钮

<button type="button" class="btn blue" id="new_group_showbtn"><i class="fa fa-plus"></i> New</button>
                                            <button type="button" class="btn purple" id="edit_group_showbtn"><i class="fa fa-edit"></i> Edit</button>
                                            <button type="button" class="btn yellow" id="delete_group_btn"><i class="fa fa-trash"></i> Delete</button>

我使用控制器控制如下

if($this->mylib->access('testcontrol'))
{
    \\code.....

} //Access control END

如何对视图进行此类控制?我不是回应视图,而是加载纯HTML作为视图,

可以通过传递一些变量吗?怎么样?

谢谢,

2 个答案:

答案 0 :(得分:0)

试试这个,

将用户类型存储在ligin上的会话中(如admin,subadmin,...)

假设我想只向用户显示名称create sub admin的按钮,我会这样做,

<?php if($this->session->userdata("user_type") == "admin") { ?>
     <button>Add Sub Admin</button>
<?php } ?>
像这样的东西。

答案 1 :(得分:0)

由于会话变量是全局变量,因此您可以在任何页面中使用它们(甚至在视图中)。

因此,当您允许用户登录时, 根据用户类型将一个会话变量设置为适当的值。

可能是这样的

$this->session->set_userdata('privilege', 'user');
$this->session->set_userdata('privilege', 'manager');

然后在视图中,  你可以检查一下,

 <html>
  <body>

  <div>
  <?php if($this->session->userdata("privilege") == "manager") { ?>
    <button type="button" class="btn yellow" id="delete_group_btn"><i class="fa fa-trash"></i> Delete</button>
  <?php } ?>
  </div>

 .
 .
 .
</body>
<html>

上面的代码只显示用户类型管理器的删除按钮。 你可以检查一下情况。