5

谁能告诉我,问题出在哪里??

这是我的控制器

class Support extends CI_Controller {
    public function __construct()
    {
        parent::__construct();
        $this->load->model('support_model');
        $urlarray = array("index","delete");
        if(!in_array($this->uri->segment(2),$urlarray)){
            $this->viewticket($this->uri->segment(2));
        }
    }

    public function viewticket($id){
        if(!empty($id)){
            $this->load->view('templates/logged_header');       
            $this->load->view('support/view');
            $this->load->view('templates/footer');
        }
    }
}

这是我的 routes.php

$route['default_controller'] = "welcome";
$route['benefits'] = 'welcome/benefits';
$route['faqs'] = 'welcome/faqs';
$route['distributors'] = 'welcome/distributors';
$route['contact'] = 'welcome/contact';
$route['purchase'] = 'welcome/purchase';

//login routes
$route['login'] = 'login/index';
$route['logout'] = 'login/logout';

$route['404_override'] = '';

localhost/ciproj/support/hello-world给我404 Page Not Found错误

如果我使用exit;after $this->load->view('templates/footer');,页面将显示空白页。

我在与支持相关的路线中没有任何东西,并且所有其他方法都在工作我在路线中是否缺少任何东西?

谢谢您的帮助。

4

2 回答 2

7

判断标题,首先检查您的服务器是否正在使用 PHP 运行CGI/FastCGI(您可以通过 简单地检查phpinfo())。

如果是这样,请更改以下内容config.php

$config['uri_protocol'] = "REQUEST_URI";

回到主题,您可以通过在文件中使用以下单行路由来实现routes.php

$route['support/(?!index)(?!delete)(:any)'] = "support/viewticket/$1";

__construct并从您的方法中删除这些行:

$urlarray = array("index","delete");
if(!in_array($this->uri->segment(2),$urlarray)){
    $this->viewticket($this->uri->segment(2));
}

让我知道它是如何工作的。

于 2013-08-10T22:10:36.013 回答
-1

由于上面的答案对我不起作用,我只是在我的 default_controller 中添加了这个函数,它就起作用了。

    public function __construct() {
    parent::__construct();
    $this->load->helper('url');
    }
于 2020-06-08T18:10:47.343 回答