1

我正在 CodeIgniter 中创建一个 ebay 风格(但更简单)的商店,我想知道处理项目代码/控制器的最佳方法。

目前,我有一个 Category 控制器,它是主控制器(在路由中)。/category/id 应该显示特定类别的项目列表,/category 或 / 显示所有项目。

控制器中的类别索引($id=0){} 加载生成类别列表的类别帮助器,然后我在视图中将其回显。

现在我已经到了添加项目方面的阶段......用户需要能够添加项目,查看特定项目,并且类别代码需要能够显示所有项目或特定类别的项目。

我正在考虑拥有一个带有 add_item、view_item 的项目控制器,但是现在我想知道我应该如何从类别控制器中获取类别列表。

我是否应该有一个项目助手来加载项目模型,根据类别获取项目列表,将列表分配给变量并回显列表?当用户想要查看特定项目时,它会加载项目控制器 view_item,并添加 add_item 等?

我还希望在他们查看项目时显示类别,所以如果我这样做,我还需要在项目控制器中加载类别帮助程序......由于代码重复,这是不好的做法吗?

4

1 回答 1

1

简而言之,这就是我要做的。

  • /, 显示所有项目。
  • /category/xyz,显示 XYZ 类别的所有项目。
  • /item/view/xyz,显示项目 XYZ。
  • /item/add,添加一个项目。
  • ...

在控制器中重用模型是正常的。否则会很可怕;这将意味着大量的代码重复。尽可能多地重用你的助手也是正常的。这就是助手的目标!实现在很多地方重用的功能。当您开始复制+粘贴相同的行时,那是您不进行重用的时候。创建一个函数并重用它。

记住,

  • 模型处理您的数据。(类别,项目,出价,...)
  • 控制器处理您的 HTTP 请求和响应。(加载正确的模型,输出正确的视图,...)
  • Helper 处理频繁的操作。(根据您的模型,根据您的观点,根据您的要求,...)

希望这可以帮助。

于 2012-10-17T01:29:03.597 回答