0

我有一个称为事件的控制器(类)。某些方法,例如 get 应该可供所有用户(公共)访问。但是,某些方法(例如添加和编辑)应该只有经过身份验证的用户才能访问。

代替:

public function add(){
//if user is logged in add event
}

public function edit(){
//if user is logged in edit event
}

有没有更优雅的方法来实现这一点?也许每次我调用方法时都会自动检查“如果用户已登录”条件?(并且不必每次都明确说明)。

我认为可以为具有未经身份验证的方法的事件创建一个父类,然后将其扩展为包含经过身份验证的方法,但我不确定这是否/如何工作。

作为参考,我的事件控制器中有以下内容:

class Events extends MY_Controller{

    public function get(){
        echo "List of events";
    }

    public function add(){
        echo "Adding an event";
    }

    public function edit(){
        echo "Editing an event";
    }
}
4

1 回答 1

-1

你可以做这样的事情

class Events extends MY_Controller{

    public function get(){
        echo "List of events";
    }

    public function addedit($edit_id=0){

        // check login user first
        if(!$this->session->get('userid')){ redirect('login')}

        if($this->input->post('submit'))
        {
          if($edit_id==0)
          {
              // insert record
          }
          else
          {
             // Edit record using edit_id
          }
        }

      if($edit_id>0)
      {
       // get array record using edit_id to display in form 
       $data['record']=$this->MODEL->getRecordById($edit_id)
      }

        $this->load->view('addeditform',$data)

    }

}
于 2013-03-26T11:57:38.197 回答