2

我写了一个三个级联的 dropDownLists,它的 listData 是从数据库模型中生成的。这些列表是使用基于控制器的 Ajax 调用操作生成的。

我想重用此代码并与更多页面共享。

我尝试执行以下操作:

  1. 将其编写为自定义小部件。目前我使用“createurl”函数调用匹配控制器中的函数。我无法编写 JavaScript,因为我想使用现有的数据库模型。在这种情况下,我需要在一个独立的文件中编写动作函数——那么我应该编写一个控制器吗?我应该把它放在哪里?

  2. 把它写成模块的一部分——但这似乎有点过头了。

任何建议,我相信有一个正确和简单的方法来做到这一点。

4

1 回答 1

0

您可以将其创建为helper。助手只是组件中的一个类,它在 M->C->V 动作流程中没有直接动作,但可以在任何控制器、模型、视图、组件、模块等中使用......我会写一个助手方法从控制器调用它。

另一个建议可能是将 CController 扩展到您自己的基本控制器,并让您的实际控制器从您的自定义基本控制器扩展。这样,您可以轻松地在每个控制器中使用它,然后您只需设置一些成员,其中包含您在实际控制器中设置的要使用的模型。

如果您需要更多帮助,请在 freenode #yii 上找到我

于 2012-12-21T09:04:41.930 回答