Отправка формы CakePHP с результатами в URL - PullRequest
1 голос
/ 05 июня 2011

Как мне отправить форму с помощью помощника по формам и получить в ответе на эту ссылку URL с тем, что искали?

Я отправляю этот код:

 <?php echo $form->create('Search', array('action' => 'results', 'type' => 'post')); ?>
    <?php

            $options = array
            (
                'size' => 45,
                'id' => 'search',
                'tabindex' => 1,
                'maxlength' => 250
            );

            echo $form->text('Search.query', $options);
        ?>

когда я отправляю форму со словами «Hello World», я хочу, чтобы получился URL:

 [domain]/searches/results/Hello+World

1 Ответ

2 голосов
/ 05 июня 2011

Вы должны будете сделать перенаправление, чтобы получить этот точный URL. Отправка формы с использованием GET приведет к /searches/results?SearchQuery=Hello+World. На мой вкус это было бы вполне достаточно, но если вы хотите красивый URL, сделайте это в вашем контроллере:

class SearchesController extends AppController {
    public function results($query = null) {
        if (!$query && $this->data) {
            $this->redirect(array('action' => 'searches', $this->data['Search']['query']));
        }

        // search
     }
}

Обратите внимание, что для этого требуется один дополнительный прием на сервер.

...