hooks.php
$hook['post_controller_constructor'] = function()
{
$this->CI = & get_instance();
$session = $this->CI->session->userdata('user_id');
if( $session == TRUE )
{
$this->CI->load->view('admin/dashboard');
echo "<script>console.log('true')</script>";
}
if( $session == FALSE )
{
$this->CI->load->view('public/articles_list');
echo "<script>console.log('false')</script>";
}
};
(基本控制器)MY_controller.php
class MY_Controller extends CI_Controller
{
public function __construct()
{
parent::__construct();
// if (!($this->session->userdata('user_id'))) {
// return redirect('login');
// }
$this->load->model('articles_model');
}
}
(控制器)admin.php
class Admin extends MY_Controller
{
public function dashboard()
{
$this->load->helper('form');
$this->load->library('pagination');
$config = [
'base_url' => base_url('admin/dashboard'),
'per_page' => 5,
'total_rows' => $this->articles_model->num_rows(),
'full_tag_open' => '<ul class="pagination">',
'full_tag_close' => '</ul>',
'next_tag_open' => '<li class="page-item">',
'next_tag_close' => '</li>',
'prev_tag_open' => '<li class="page-item">',
'prev_tag_close' => '</li>',
'num_tag_open' => '<li class="page-item">',
'num_tag_close' => '</li>',
'cur_tag_open' => '<li class="page-item active"><a class="page-link">',
'cur_tag_close' => '</a></li>',
'attributes' => [
'class' => 'page-link'
]
];
$this->pagination->initialize($config);
$articles = $this->articles_model->get_articles($config['per_page'],$this->uri->segment(3));
$this->load->view('admin/dashboard',['articles'=>$articles]);
}
(控制器)login.php
class Login extends CI_Controller
{
public function index()
{
// if ($this->session->userdata('user_id')) {
// return redirect('admin/dashboard');
// }
$this->load->helper('form');
$this->load->view('public/admin_login.php');
}
我的问题是,在我使用基本控制器检查会话之前,它工作正常,但是现在我想使用钩子,以便每当任何控制器收到请求时,它都会检查钩子以了解用户是否已登录并重定向到任何页面。
问题是它没有重定向到页面,我尝试过$this->CI->load->view()
,但它仍停留在同一页面上,没有任何反应,我也尝试过redirect()
,但是它卡在了某个循环上,给了{{1} }错误