在视图中调用蛋糕php中的控制器功能

时间:2009-11-16 02:28:05

标签: cakephp

我需要一些帮助

当我在我的index.ctp / view.ctp上时,我需要调用我的控制器函数来执行某些任务。我可以使用什么代码来执行此操作?

  • 我需要调用我的控制器函数,它将一个值(user_id)发送给函数并给我一个特定的动作。我怎样才能做到这一点?我也可以调用javascript函数。

3 个答案:

答案 0 :(得分:11)

如果你需要从View中调用一个Controller函数,你做错了。这不是适当的MVC。

话虽如此,requestAction将是适当的,虽然最慢的方式。您可以更多地破解并从ClassRegistry获取Controller的实例。但我真的建议你重新构建你的程序流程,这样你就不需要这样做了。

答案 1 :(得分:1)

您应该在获得视图之前在控制器中执行该任务。但是,如果您需要对正在显示的数据进行一些查看工作,您可能需要考虑制作一个Helper类。

  1. http://book.cakephp.org/view/101/Creating-Helpers

答案 2 :(得分:0)

如果您的任务没有生成任何输出 - 您可能需要考虑在进入视图阶段之前在控制器中执行此操作。

如果您的任务具有某种形式的输出 - 请将requestAction与视图元素

一起使用
  1. http://bakery.cakephp.org/articles/view/creating-reusable-elements-with-requestaction
  2. 该链接应该是一个很好的起点。 Mark Story在他的博客上也有很好的帖子详细说明了requestAction的实际性能,如果你不把它全部滥用,那真的并不是那么糟糕。

    1. http://mark-story.com/posts/view/how-using-requestaction-increased-performance-on-my-site
    2. http://mark-story.com/nodes/view/reducing-requestaction-use-in-your-cakephp-sites-with-fat-models
    3. 如果你真的需要以可预测的方式触发某种逻辑,并且逻辑可能发生在多个地方,你也可以使用事件观察者模式来触发你需要运行的控制器动作。

      1. http://cakealot.com/2009/04/eventful-a-cakephp-event-system/