Я должен переписать форму в приложении CakePHP. Форма ищет список объявлений о продаже автомобилей и является довольно сложной (~ 10 полей: модель, производитель, тип топлива и т. Д.). В настоящее время форма отправляется через POST
и работает довольно хорошо. Проблема в том, что мне нужно создавать закладки для URL из поисковых запросов, и мне было интересно, как лучше всего это сделать.
Я попытался передать 'type' => 'get'
методу $form->create()
, но при этом создается URL-адрес, подобный usercars/search/?model=...&[...]
, и поиск прерывается.
Я хочу, чтобы URL был чем-то вроде <some routing>/<Manufacturer>/<Model>/<Fuel>/<etc>
, а также поддерживал пропуск параметров (т. Е. <some routing>/<Manufacturer>
, чтобы вывести список всех автомобилей данного производителя, даже если другие параметры отсутствуют). К POST
, в настоящее время это работает. Если я выберу только один из параметров, он даст мне правильный результат.
Интересно, есть ли какой-нибудь способ определить торт для создания красивого URL из представления формы и поддерживать совместимость с $this->data
способом обработки ввода в контроллере. Я просмотрел документацию и не нашел способа сделать это.
У меня уже есть две альтернативы:
- переписывает действие контроллера для поддержки параметров функции вместо работы с
$this->data
, построения маршрута, нацеленного на метод поиска с параметрами, и выполнения перенаправления в методе beforeFilter()
контроллера на URL, соответствующий маршруту.
- выполнение javascript на странице формы поиска для создания URL + вышеуказанный способ его обработки.
Что бы вы порекомендовали?