2012-10-17 93 views
1

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

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

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

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

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

我应该有一个物品帮助程序加载项目模型,获取基于类别的项目列表,将列表分配给一个变量并回显列表?当用户想要查看特定项目时,它会加载项目控制器view_item,并添加add_item等?

我也希望类别显示,而他们正在查看一个项目,所以如果我这样做,我还需要加载项目控制器内的类别助手......这是不好的做法,由于代码重复?

回答

1

总之,这是我会做的。

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

这是正常的在您的控制器重用你的模型。否则会很吓人;这将意味着很多代码重复。尽可能重复使用您的帮手也很正常。这是帮手的目标!实现一个可以在很多地方重用的函数。当你开始复制+粘贴相同的行时,那就是当你没有重复使用时。创建一个函数并重用它。

请记住,

  • 型号处理您的数据。 (类别,项目,出价,...)
  • 控制器处理您的HTTP请求和响应。 (加载正确的模型,输出正确的视图,...)
  • 帮手处理频繁的操作。 (在你的车型上,在你的意见,你的要求,...)

希望这会有所帮助。

+0

感谢您的帮助Maxime –