簡體   English   中英

404頁面未在codeigniter中顯示

[英]404 Page not showing in codeigniter

我有一個可以通過id訪問的頁面,例如http:/localhost/v2/indicator/details/directives/4

但是,當我刪除id例如http:/localhost/v2/indicator/details/directiveshttp:/localhost/v2/indicator/details/directives/mail.html它仍然嘗試訪問該頁面並給我錯誤。 我希望它給我一個404未找到的頁面。

錯誤

 Message: Missing argument 2 for Indicator::details()

 Filename: controllers/Indicator.php

 Line Number: 140

 Backtrace:

 File: C:\wamp\www\v2\application\controllers\Indicator.php Line: 140
 Function: _error_handler

 File: C:\wamp\www\v2\index.php Line: 315 Function: require_once
 Severity: Notice

 Message: Undefined variable: id

 Filename: controllers/Indicator.php

 Line Number: 154

 Backtrace:

 File: C:\wamp\www\v2\application\controllers\Indicator.php Line: 154
 Function: _error_handler

 File: C:\wamp\www\v2\index.php Line: 315 Function: require_once

控制器部分的詳細信息

 public function details($directive, $id) {

        $this->data['current_user_menu'] = '';
        if($this->ion_auth->in_group('admin'))
        {


        $data['user'] = $this->ion_auth->user()->row();
        $data['indicators']  = $this->core->getIndicators(); 
        // load views and send data
        $this->data['current_user_menu'] = $this->load->view('header', $data);
        $this->data['current_user_menu'] = $this->load->view('templates/view_indicator', $data);
        $this->data['current_user_menu'] = $this->load->view('footer_main');
       }
       else
       {
         //If no session, redirect to login page
         redirect('auth/login');
       }
    }

視圖有

<?php $in_id = $this->uri->segment(4);?>

自定義404控制器

    class My404 extends CI_Controller 
{
    public function __construct() 
    {
        parent::__construct();
    }

    public function index() 
    {
        $this->layout->set_body_attr(array('class' => 'gray-bg'));

        $this->layout->add_css_files(array('bootstrap.min.css'), base_url().'assets/css/');
        $this->layout->add_css_files(array('font-awesome.css'), base_url().'assets/font-awesome/css/');
        $this->layout->add_css_files(array('animate.css','style.css'), base_url().'assets/css/');
        $this->output->set_status_header('404');
        $this->load->view('404');//loading in my template 
    } 
}

這樣嘗試

職能

  1. php.net中的is_int
  2. 在php.net中為empty
  3. 在codeigniter.com中的show_404

輸入指示器控制器

public function details($directive, $id) {

    if (!is_int($id) || empty($id)) 
    {
        show_404();
    } 
    else {
        $this->data['current_user_menu'] = '';
        if($this->ion_auth->in_group('admin'))
        {
            $data['user'] = $this->ion_auth->user()->row();
            $data['indicators']  = $this->core->getIndicators(); 
            // load views and send data
            $this->data['current_user_menu'] = $this->load->view('header', $data);
            $this->data['current_user_menu'] = $this->load->view('templates/view_indicator', $data);
            $this->data['current_user_menu'] = $this->load->view('footer_main');
        }
        else
        {
            //If no session, redirect to login page
            redirect('auth/login');
        }
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM