CakePHP отправив форму для правильного действия - PullRequest
6 голосов
/ 13 марта 2011

У меня есть это в 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');
?>

и это в моем контроллере:

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'));
        }
    }
}

Мой вопрос заключается в том, как CakePHP узнает, что когда пользователь нажимает «submit», для отправки «data» в функцию «add» в контроллере?

Ответы [ 4 ]

9 голосов
/ 13 марта 2011

По умолчанию CakePHP отправит форму тому же действию, которое ее отображало.

Вы можете изменить ее в представлении следующим образом:

echo $form->create('Post', array('action' => 'whatever'));
8 голосов
/ 08 февраля 2013

или если вы хотите перенаправить на другой контроллер, вы можете использовать это

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

0 голосов
/ 19 января 2018

Для cakephp 3.x

$this->Form->create('Post', ['url' => ['action' => 'post']]);

См. doc

0 голосов
/ 07 февраля 2016

В соответствии с обновленным синтаксисом ниже будет работать (CakePHP 2.4.x):

echo $this->Form->create('RegistrationsInout', array('action' => 'startroom'));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...