在codeigniter

时间:2016-12-15 13:41:05

标签: php codeigniter

我在位置test.php创建了一个applications\views\test\test.php文件,控制器位于application\controller\Test.php& applications\models\Test_model.php中的模型。

在我的routes.php文件中,我添加了$route['test']='test/view'

请注意,已经存在一些工作正常的文件,其中一个是login.php&它在routes.php中的值为$route['login']='login/view'。另外这个文件确实有相同的型号和同样位置的控制器文件。

当我尝试访问localhost\test时,它会给我404错误,而对于localhost\login则工作得很好。

有人可以帮忙路由吗?我是codeigniter&的新手。我无法解决这个问题。

修改

htaccess工作正常,因为localhost\login正在与其他几个文件一起正确加载。

编辑2

Test_model.php

<?php
class Test_model extends CI_Model{
  public function __construct()
  {
    $this->load->database();
  }
}
?>

test.php的

<div>Testing</div>

test.php的

<?php
class Test extends MY_Controller{
  public function __construct()
  {
    parent::__construct();
    $this->load->model('test_model');
  }
  public function view()
  {
    $this->loadHeader();
    $this->load->view('test/test');
    $this->loadFooter();
  }
}
?>

routes.php文件

$route['test'] = 'test/view';

编辑3

当我尝试访问localhost\application\controllers\Test.php时,会出现错误消息,指出Class My_Controller未找到。但是,当我尝试使用任何其他文件时,login使用相同的位置,它会给我同样的错误。

所以我猜,它能够找到控制器,因为它显然会出错,但无法加载任何其他内容。

是否有某种配置文件,我必须提及我创建的每个新页面或其他内容?必须要有一些东西。这是非常基本的&amp;我无法找到它的根源。

编辑4

所以这就是问题所在。当我将测试视图文件复制到pages文件夹时,它工作正常。当然在控制器中我编辑了文件的路径。

现在真正的问题是为什么没有名为test的新文件夹在视图下工作?

2 个答案:

答案 0 :(得分:0)

创建.htaccess文件并将此代码粘贴到

下面
DirectoryIndex index.php
RewriteEngine on
RewriteCond $1 !^(index\.php|images|css|js|robots\.txt|favicon\.ico)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ./index.php/$1 [L,QSA] 

答案 1 :(得分:0)

最后,罪魁祸首是routes.php档案中的这一行:

$route['(:any)'] = 'pages/view/$1';

我在这下面添加了其他路线,因此它获得了默认行为。我把它们放在这条线上面&amp;它就像一个魅力。我从没想过这可能是个问题。

行号很重要,现在。