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 に答える