2010-09-20 32 views
0

我試圖用一個下拉輸入我的CakePHP程序,這個我想倒在下降提交渲染網址像這樣:Cakephp - 如何從下拉選擇輸入構建自定義網址?

 
www.example.com/cake/FILE/VALUE 

但是唯一的URL我可以選擇輸入到創建如下:

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

如何去使URL搜索引擎友好像第一個例子中不使用httaccess,因爲我想要的網址出現在搜索引擎的搜索引擎友好的眼神。

這是我使用的代碼。

視圖

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

謝謝。

回答

0

在您的控制器中,通過$file = $this->data['FILE']['form_value']獲取「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,你可以使用蛋糕內置路線CakePHP中/app/config/routes.php。

有了這樣的東西,你可以將索引動作映射到下載動作: Router :: connect('/ FILE/*',array('controller'=>'files','action'=> '下載')); 請參閱http://book.cakephp.org/view/46/Routes-Configuration以獲得更好的解釋。

+0

我嘗試了你的方法,它不完全是我所問的,但生病必須嘗試一些東西,我也不應該使用FILE這個詞,我的意思是控制器。例如蛋糕/控制器/海王星而不是蛋糕/控制器?planet_name = neptune – Stephen 2010-09-21 14:18:29