CodeIgniter 4动态路由

时间:2019-03-18 11:48:37

标签: codeigniter model-view-controller

我是CI的新手。 在我的未来项目中,我们将具有如下菜单结构:

Menu1
--Submenu1
--Submenu2
--[...]
Menu2
--Submenu3
--Submenu4
[...]

因此,许多菜单,每个菜单都有许多子菜单(许多子菜单都有CRUD或类似菜单)。 我的问题是要路由到所有这些页面,我想将Controllers组织在文件夹中(带有菜单名称),并且每个子菜单都将是一个Controller,如下所示:

/app/Controller/Menu1/Submenu1.php
/app/Controller/Menu1/Submenu2.php
/app/Controller/Menu2/Submenu1.php
etc...

然后我的视图将是这样的:

/app/Views/Menu1/Submenu1/index.php
/app/Views/Menu1/Submenu1/insert.php
etc...

但是同时,我不想在Routes.php文件中为每个子菜单创建一个条目,有没有一种方法可以创建一条仅使用路径URI并在文件夹中搜索该确切路径的路由值?

1 个答案:

答案 0 :(得分:0)

首先,请记住,您需要使代码易于管理。从外观上看,您的视图和控制器将需要更加简化,否则将需要大量管理。

因此,我认为您最好做一些事情:

1)在application / core中创建一个名为MY_Controller.php的控制器,并从中扩展所有控制器(这样您就可以集中您的方法)

2)每个菜单控制器用户a。所以Controller = Menu1或Menu2

3)尝试使您的视图尽可能地可重用,以免使事情变得过于复杂

您应该以如下形式结束:

menu1/Submenu1 >> Controller (Menu1) >> function Submenu1

menu1/Submenu2 >> Controller (Menu1) >> function Submenu2

请记住,使用Codeigniter,以下网址将导致:

url: menu1/submenu1/param1/param2

Controller
function submenu1($param1,$param2)

因此无需获取URI组件,因为CI会自动路由它们。