具有多级层次代码点火器的HMVC



我正在codeignter3中实现HMVC。我已经在核心和第三方文件夹中添加了所有必需的文件。

我还创建了模块文件夹。在模块内部,我创建了前端文件夹在前端文件夹内部,我在其中创建了一个文件夹测试,我在里面创建了3个文件夹控制器、模型和视图。在controllers文件夹中,我创建了Test.php,在名为Test_model.php的模型中创建了模型,在视图中创建了一个文件index.php

我的控制器代码是

<?php
class Test extends MX_Controller
{
function __construct()
{
parent::__construct();
$this->load->model('test_model');
}
public  function index()
{
$data['main_content'] = 'home/index';
$this->load->view('front/layout', $data);
}
}
?>

application/config/routes.php内部

$route['test'] = "frontend/test/Test/index"; 

当我通过localhost/myprojectfoldername/test访问它时,我得到了404

是的,这会给您一个错误。因为您已经在模块文件夹中创建了模块文件夹。

你必须在你的应用程序文件夹中创建模块文件夹,而不是在另一个文件夹中——路径是在mxloaderapplication>modules中定义的,所以代码不会被定义为类。

更改其目录并刷新它,以便删除错误。

进一步的帮助使用这些链接:

http://www.dcaulfield.com/how-to-install-codeigniter-hmvc/

或者你可以直接从我的gmail驱动器下载:

https://drive.google.com/open?id=1Viyo7CQcjJNkBv5ahyiOs5RwwXiOVopg

下载并设置后,点击网址:

http://localhost/hmvc/home

这样使用:

$route['some-route'] = "yourcontroller/yourmethod";

或者换句话说:

$route['user'] = 'user/login';

关于Codeigniter中的HMVC模式的一点是,您需要很好地遵循文件夹结构。

在你的描述中,你说你在控制器中创建了一个Test.php文件,该文件位于一个名为"frontend"的文件夹中,该文件夹也位于模块文件夹中的另一个文件夹"Test"中。

现在这里的技巧是,如果你的控制器名称(Test.php(等于文件夹名称(Test(,你可以简单地这样调用它:

$route['test'] = "frontend/test/index"; 

取而代之的是:

$route['test'] = "frontend/test/Test/index"; 

另一方面,假设您在名为User.php的文本文件夹中创建了另一个文件(或控制器(,然后您可以将您的路由设置为:

$route['test/user'] = "frontend/test/user/index"; 

在你的路由代码示例中,我注意到你试图使用大写字母表示"Test",这并不重要,你可以只使用小写字母"Test":$route['test'] = "frontend/test/test/index";但请注意,这只是为了解释它是否区分大小写。

试试你的手,让我们看看的结果

相关内容

  • 没有找到相关文章

最新更新