CakePHP将表单提交给正确的操作

ben*_*e89 6 php cakephp

我在add.ctp中有这个:

<!-- File: /app/views/posts/add.ctp --> 

<h1>Add Post</h1>
<?php
echo $form->create('Post');
echo $form->input('title');
echo $form->input('body', array('rows' => '3'));
echo $form->end('Save Post');
?>
Run Code Online (Sandbox Code Playgroud)

这在我的控制器中:

function add(){
    if (!empty($this->data)) {
        if($this->Post->save($this->data)){
            $this->Session->setFlash('Your post has been saved');
            $this->redirect(array('action' => 'index'));
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我的问题是CakePHP如何知道当用户点击提交时,将"数据"发送到控制器中的"添加"功能?

And*_*rea 9

默认情况下,CakePHP会将表单发送到显示它的相同操作.

您可以在视图中更改它,如下所示:

echo $form->create('Post', array('action' => 'whatever'));
Run Code Online (Sandbox Code Playgroud)

  • 此警告适用于最新蛋糕,请用 url 替换操作。按照@dav的回答 (2认同)

dav*_*dav 8

或者如果你想重定向到另一个控制器,你可以使用它

echo $form->create('Post', array('url' => '/controller_name/action_name'));