我写了三个级联dropDownLists,它的listData是从数据库模型生成的。 这些列表是通过基于控制器的Ajax号召唤生成的。
我想重复使用此代码并与更多页面共享。
我尝试执行以下操作:
将其编写为自定义窗口小部件。 目前我使用'createurl'函数调用匹配控制器中的函数。 我不能写JavaScript因为我想使用现有的db模型。 在这种情况下,我需要在一个独立的文件中编写动作函数 - 所以我应该写一个控制器?我应该把它放在哪里?
将其作为模块的一部分 - 但它似乎有点矫枉过正。
任何建议,我相信有一种正确而简单的方法可以做到。
答案 0 :(得分:0)
您可以将其创建为helper。辅助器只是组件中的一类,其在M-> C-> V动作流中没有直接动作,但可以用在任何控制器,模型,视图,组件,模块等中...... 我会编写一个辅助方法来从控制器中调用它。
另一个建议可能是将CController扩展到您自己的基本控制器,并从您的自定义基本控制器扩展您的实际控制器。这样你就可以在每个控制器中轻松使用它,然后你只需设置一些包含你在实际控制器中设置的模型的成员。
如果您需要更多帮助,请在freenode #yii
上找到我