我使用Codeigniter和MVC模式创建应用程序。 我现在想创建一个可重用的管理工具,用于不同的对象,如条目,用户,类别。我需要跨越不同的控制器和视图以及多个时间的特定工具集。MVC和在模型中查看
我希望能够调用类似$this->load_admin_tools($name,$data)
其中$name
将成为工具集的名称(这将只是一个HTML表单)和$data
必要的变量来处理那些形式(最有可能$id
的对象)。
我想这样做,这样我就可以在一个地方添加或删除一些工具。
我想创造一个model_admin_tools,我将检查的权限是否应显示工具,然后装入适当的视图(表格删除/编辑/ etc)。我知道那些应该是一个控制器(为了检查权限,然后决定是否显示某些东西),但是一遍又一遍地重复相同的代码,这对我来说比将它们放在模型中是最糟糕的。我可以在控制器中创建私人功能,但是我不得不将这个功能放在我的所有控制器中。
有没有更好的方法来实现这一目标?我在想助手,但同样,助手不是为了“观看”。或者,我可能太委婉?
在此先感谢。
是的,我用的帮手所有的时间,但我不加载在其中的视图。澄清。我想为用户操作加载5个不同的html表单(如编辑/删除/禁止等)。所以我需要检查它是否应该加载和什么样的形式。然后我需要加载适当的HTML表单(视图)。所以最后,它将是模型中的$ this-> load-> view('user_delete_form')。而且我知道这应该在Controller中完成。这就是为什么我有点困惑,我不知道是否有更好的方式来做到这一点。 – user1245750 2012-03-02 19:04:29
看我编辑的答案,看看是否有助于回答你的问题。 – Catfish 2012-03-02 19:09:22
这不完全是我想要实现的,因为这样我就不得不调用模型,检查结果,然后加载视图。该代码块将在控制器上执行很多次);理想情况是将该代码放到一个函数中(如模型中),然后调用它。但是这样我就可以在模型中使用'load-> view()'。我不知道是否有可能需要检查。我的意思是,我可以在视图中创建切换,并基于第二个参数来加载显示我需要的视图。即使我不能用一行代码来做(检查,加载需要的视图)3行比20好得多 – user1245750 2012-03-02 19:31:34