Cakephp - 如何从下拉选择输入构建自定义URL?

时间:2010-09-20 13:56:55

标签: php cakephp

我正在尝试在我的cakephp应用程序中使用下拉输入,我希望下拉提交以呈现这样的URL:

www.example.com/cake/FILE/VALUE

但是,我可以获得要创建的选择输入的唯一网址如下:

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

如何在不使用httaccess的情况下像第一个示例那样使URL SEO变得友好,因为我希望URL在搜索引擎眼中看起来很友好。

这是我正在使用的代码。

在视图中

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

谢谢。

1 个答案:

答案 0 :(得分:0)

在您的控制器中,通过$file = $this->data['FILE']['form_value']获取“form_value”的值并执行重定向$this->redirect(array('action' => 'download', $file))

然后创建一个名为download的函数,它应如下所示:

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

如果您不希望动作“下载”出现在URL中,您可以在cakephp / app / config / routes.php中使用Cakes内置路由。

通过这样的方法,您可以将index-action映射到download-action:     Router :: connect('/ FILE / *',array('controller'=&gt;'files','action'=&gt;'download')); 有关更好的说明,请参阅http://book.cakephp.org/view/46/Routes-Configuration