CodeIgniter:特定功能应该去哪里?

Sam*_*nan 5 php formatting codeigniter dynamic-data uiviewcontroller

以下是大多数应用程序中控制器功能的快速概述:

  • 控制器加载特定模型,从中获取数据,格式化数据并将格式化数据传递给视图.

现在有一个搜索页面,需要对整个数据库(所有模型)进行搜索查询.它需要在单个页面上将其特定格式输出中的每种类型的数据显示为列表.

问题:

搜索控制器可以进行搜索,为每种记录类型动态加载模型,并从模型中获取数据.需要格式化数据时出现问题.我试图从搜索控制器加载特定的控制器,这会导致问题.

该怎么办?

PS:我尝试使用'Wick'库,但是当控制器的格式化函数试图使用自己的模型和会话对象时,它会失败,从而给非对象上的成员调用提供错误.

Sam*_*nan 2

经过多次重构和试验/错误,看来实现上述目标的最佳方法是这样的:

  1. 将格式函数保留在派生所有其他控制器的基本控制器中。格式选项与数据对象一起作为参数传递给函数。

  2. 在每个派生控制器中创建一个静态函数,该函数返回数据的格式选项。

  3. 在搜索控制器(本身源自基本控制器)内部,对于每个数据对象,调用其特定控制器的静态函数,该函数返回数据格式化选项,然后使用它来格式化视图的对象。

我想我可以说我将坚持仅使用模型与数据库交互,并让控制器完成其他所有事情。如果有人还有更好的解决方案,我会洗耳恭听。