CODEIGNITER:无法获取请求的页面

时间:2015-07-24 07:04:42

标签: php codeigniter

我遇到了CodeIgniter 2的问题。它返回了404错误。这是我的代码:

配置/ routes.php文件

<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');
$route['default_controller'] = "inventory";
$route['404_override'] = '';

$route['create_item'] = "inventory/createitem";

控制器/ inventory.php

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Inventory extends CI_Controller
{
    public function index()
    {

       $this->load->view('inventory/index');

    }

    public function create_item()
    {

       $this->load->view('inventory/createitem');

    }


}

视图/库存/ createitem.php

    <!DOCTYPE html>
<html lang="en">
  <head>    
    <?php $this->load->view('templates/head_inc');  ?>
  </head>

  <body>
    <?php $this->load->view('templates/header_inc');  ?>

    <div class="container-fluid">
      <div class="row">

        <div class="col-sm-3 col-md-2 sidebar">                
          <ul class="nav nav-sidebar">
            <li class="active"><a href="index.php">Dashboard</a></li>
            <li ><a href="patients.php">Patients</a></li>                                  
          </ul>
          <ul class="nav nav-sidebar">            
            <li ><a href="createpatient.php">Create New Patient</a></li>                  
          </ul>

          <ul class="nav nav-sidebar">            
            <li ><a href="reports.php">Reports</a></li>                      
          </ul>          
        </div>

        <div class="col-sm-9 col-sm-offset-3 col-md-10 col-md-offset-2 main">
          <h1 class="page-header">Create New Item</h1>



        </div>
      </div>
    </div>

    <!-- Bootstrap core JavaScript
    ================================================== -->
    <!-- Placed at the end of the document so the pages load faster -->
    <?php $this->load->view('templates/footer_inc');  ?>

      </body>
</html>

我一直在研究这个问题,但我似乎无法找到答案。 这是我第一次做PHP Framework。

我希望得到你的好答案。

3 个答案:

答案 0 :(得分:1)

使用

$route['create_item'] = "inventory/create_item";

而不是

$route['create_item'] = "inventory/createitem";

因为在您的整理程序功能名称为create_item()

  

替代解决方案

function create_item()更改为function createitem()

答案 1 :(得分:1)

  <?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');
   $route['default_controller'] = "inventory";
  $route['404_override'] = '';

    $route['create_item'] = "inventory/create_item";

在配置中使用它,因为create_item是库存控制器中的功能名称。

答案 2 :(得分:1)

您在控制器中使用了inventory/createitem,它应该是 controller_name / function_name ,路由数组包含您的网址参数

如果你想要这样的网址http://yoururl.com/inventory/createitem,那么你需要添加如下内容:

$route['createitem'] = "inventory/create_item";

其中, createitem 是url param(您可以更改任何内容), create_item 应该是库存控制器中的功能名称。