我需要一些帮助
当我在我的index.ctp / view.ctp上时,我需要调用我的控制器函数来执行某些任务。我可以使用什么代码来执行此操作?
答案 0 :(得分:11)
如果你需要从View中调用一个Controller函数,你做错了。这不是适当的MVC。
话虽如此,requestAction
将是适当的,虽然最慢的方式。您可以更多地破解并从ClassRegistry
获取Controller的实例。但我真的建议你重新构建你的程序流程,这样你就不需要这样做了。
答案 1 :(得分:1)
您应该在获得视图之前在控制器中执行该任务。但是,如果您需要对正在显示的数据进行一些查看工作,您可能需要考虑制作一个Helper类。
答案 2 :(得分:0)
如果您的任务没有生成任何输出 - 您可能需要考虑在进入视图阶段之前在控制器中执行此操作。
如果您的任务具有某种形式的输出 - 请将requestAction与视图元素
一起使用该链接应该是一个很好的起点。 Mark Story在他的博客上也有很好的帖子详细说明了requestAction的实际性能,如果你不把它全部滥用,那真的并不是那么糟糕。
如果你真的需要以可预测的方式触发某种逻辑,并且逻辑可能发生在多个地方,你也可以使用事件观察者模式来触发你需要运行的控制器动作。