0

我在页面上有一些操作按钮。然后在我的CI controllerfunctions为他们每个
人都喜欢view, edit, new。现在所有这些功能都有这个if else块。你是这样
做的吗?其他模式?

我将 CI 与 mod 一起使用。扩展并在具有此类功能的几个模块下有许多控制器。

if(hasPermission('view_all'))
{
   $this->model->queryAll()
   $this->load->view('all_layout')
}
else if(hasPermission('view_group'))
{
   $this->model->queryGroup()
   $this->load->view('group_layout');
} 
else {
   $this->model->querySingle()
   $this->load->view('single_layout');
}
4

1 回答 1

0

我会使用 Switch Case 编写相同的代码,并在 hasPermission 类中稍作调整

  $permission = getPermission() // It wud return 1 for view_all, 2 for view_group, 3 for single layout

  switch($permission){
     case 1:
       $this->model->queryAll();
       $this->load->view('all_layout');
       break;
     case 2:
       $this->model->queryGroup();
       $this->load->view('group_layout');
       break;
     default:
       $this->model->querySingle()
       $this->load->view('single_layout');
       break;
 }

我知道这段代码不会减少行数,但有时可读性比 LOC 更重要 :) 我希望看到更多即兴创作

于 2013-10-25T16:02:41.970 回答