使用Ajax访问不同的控制器方法 - > form()

时间:2011-05-21 06:42:50

标签: ajax cakephp controller

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

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

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

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

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

action="facebook/conversations/messages/add"

所以我得到一个错误,说我的会话控制器中没有标记为“messages”的控制器功能。

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

我确定我必须实施一些非常愚蠢的代码,但我真的很感谢你的帮助。

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

CakePHP Book你也可以使用稍微不同的Ajax表单函数变体,并避免使用Html Helper来构建url。

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