コントローラが_construct
の場合、コントローラがログインしたかどうかを調べることができます。そうでない場合は、ログイン画面に送信してください。
function __construct() {
parent::__construct();
if (!$this->session->userdata('logged_in')) {
redirect('YourLoginController');
}
}
これは間違いなくコントローラにあるはずです。
また、標準のコントローラを作成してCI_Controller
を拡張し、MY_Controller
のコンセプトをドキュメントで調べることもできます。そこでは、認証のためにチェックしていない場合はリダイレクトメソッドを追加することができ、その後、認証を必要とする、あなたのコントローラの方法でそれを呼び出す:使用
class Some_Controller extends MY_Controller {
function _construct() {
parent::_construct();
}
// If a method requires authentication
function someMethod() {
$this->authenticated(); //This does nothing if logged in
//It redirects to login if not logged in
//Your stuff.
}
//If a method DOESN'T require login, your $this->data to
//pass to the view has already been started from MY_Controller
//so append the display content you need to that array and
//then pass it to the view
function someOtherMethod() {
$this->data['somecontent'] = "I'm content";
$this->load->view('someView',$this->data);
}
}
:YOURコントローラで
class MY_Controller extends Controller{
public $data = array();
function _construct() {
parent::_construct();
$data['logged_in'] = $this->session->userdata('logged_in');
}
function authenticated() {
if (!$this->data['logged_in']) {
redirect('YourLoginController');
}
}
}
そして、 someOtherMethod()
から作成したコンセプトを使用すると、ビュー内の変数$logged_in
を利用して、ユーザーの認証ステータスに基づいてコンテンツを変更できます。