P.S这个问题可能已经存在,但答案并不能满足我的想法。我在新项目中第一次使用代码点火器。
所以我只有一个控制器是main.php并且填充了很多公共功能。现在,每当我去main.php时,网址看起来都像cmms/main
,每次我去它的子类时它都会cmms/main/asset
。
现在子类资产有很多函数在main.php中。我想要的是为每个模块制作单独的控制器。所以我有cmms/main
作为main.php& cmms/asset
为asset.php而不是cmms/main/asset
。这可能吗?或者我应该不管它并继续将所有代码放在main.php控制器中?
我的默认路由是主控制器。
$route['default_controller'] = 'main';
答案 0 :(得分:1)
您可以通过以下方式为班级创建模块,
重要的是请阅读HMVC扩展的文档以便使用它。
答案 1 :(得分:1)
你有两种方法可以做到这一点。
(这些主题在下面描述)
转到 - config/routes.php
,然后添加这样的新路线
$route['cmms/asset'] = 'cmms/main/asset';
$route['cmms/contact'] = 'cmms/main/contact';
所以在视图中你应该像这样调用锚标签
<a href= "<?php echo base_url() ?>cmms/asset">Assets</a>
<a href= "<?php echo base_url() ?>cmms/contact">Contact Us</a>
为每种新方法创建新的控制器。
文件名 - main.php
if (!defined('BASEPATH'))
exit('No direct script access allowed');
class Main extends CI_Controller {
}
文件名 - asset.php
if (!defined('BASEPATH'))
exit('No direct script access allowed');
class Asset extends CI_Controller {
}
文件名 - contact.php
if (!defined('BASEPATH'))
exit('No direct script access allowed');
class Contact extends CI_Controller {
}
所以在视图中你应该像这样调用锚标签
<a href= "<?php echo base_url() ?>asset">Assets</a>
<a href= "<?php echo base_url() ?>contact">Contact Us</a>
答案 2 :(得分:0)
似乎你每次都在编写长网址时遇到麻烦......
因此,更好的方法是轻松使用路线。 例如:$ route ['login'] =“main / login”;
现在,如果您直接在url中使用登录,它将调用主类及其登录方法
使用路线可以防止暴露您的控制器名称,也可以缩短URl