【问题标题】:Accessing Different Controller Method from A View with Ajax->form()使用 Ajax->form() 从视图访问不同的控制器方法
【发布时间】:2011-05-21 06:42:49
【问题描述】:

在我的对话视图中,我正在尝试将消息添加到对话中。

目前我有一个 Conversation hasMany Messages 关系。

现在当我尝试调用以下代码时:

<?=$ajax->form('message','post',array('update'=>'messages')); ?>

它生成一个带有表单操作的表单

action="facebook/conversations/messages/add"

所以我收到一条错误消息,说我的对话控制器中没有标记为“消息”的控制器功能。

我希望该操作改为转到我的消息控制器。

我确信我必须实现一些非常愚蠢的代码,但我非常感谢您的帮助。

【问题讨论】:

    标签: ajax cakephp controller


    【解决方案1】:

    您可以在创建表单时显式传递 url。

    echo $ajax->form('message', 'post', array('url'=>$html->url(array('controller'=>'messages', 'action'=>'action_name'))));
    

    【讨论】:

    • 感谢您的评论。我对下面的链接进行了投票,因为我觉得该资源非常有帮助。
    【解决方案2】:

    从CakePHP Book 开始,您还可以使用稍微不同的 Ajax 表单函数变体,避免使用 Html Helper 来构建 url。

    $this->Ajax->form( array(
     'type' => 'post',
     'options' => array(
      'url' => array(
       'controller' => 'messages',
       'action' => 'action_name'
      )
     )
    ));
    

    【讨论】:

    • 感谢您的链接。这帮助很大!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-18
    相关资源
    最近更新 更多