Cakephp - Как создать пользовательские URL из выпадающего выбора? - PullRequest
0 голосов
/ 20 сентября 2010

Я пытаюсь использовать раскрывающийся ввод в моем приложении CakePHP, поэтому я хочу, чтобы раскрывающийся список при отправке отображал URL следующим образом:

www.example.com/cake/FILE/VALUE

Однако единственный URL, который я могу получитьвыберите вход для создания следующим образом:

www.example.com/cake/FILE?form_value=VALUE

Как мне сделать так, чтобы URL был дружественным SEO, как в первом примере, без использования httaccess, потому что я хочу, чтобы URL выглядел как SEO дружественный в глазах поисковых систем.1007 *

Вот код, который я использую.

В ПРОСМОТРЕ

echo $form->input('form_value', array(
         'label'  => '',
         'type'  => 'select',
         'options' => $listOfOptions,
          'selected'  => '0',));

Спасибо.

1 Ответ

0 голосов
/ 20 сентября 2010

В вашем контроллере получите значение «form_value» через $file = $this->data['FILE']['form_value'] и выполните перенаправление $this->redirect(array('action' => 'download', $file)).

Затем вы создаете функцию загрузки, которая должна выглядеть следующим образом:

<?php
function download($file = null) {
    if ($file != null) {
        /*make download*/
    } else {
        $this->Session->setFlash('no file specified')
    }
?>

Если вы не хотите, чтобы действие «загрузка» отображалось в URL, вы можете использовать встроенные маршруты Cakes в cakephp / app / config / rout.php.

С помощью чего-то подобного вы можете сопоставить действие index с действием загрузки: Router :: connect ('/ FILE / *', массив ('controller' => 'files', 'action' => 'download')); См. http://book.cakephp.org/view/46/Routes-Configuration для лучшего объяснения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...