2013-03-26 74 views
0

我有一個CakePHP 1.3的體面的歷史,但我正在研究我的第一個2.x(2.3,在這種情況下)應用程序,並碰到什麼出現是幾個奇怪的問題與我希望有人能幫助我的URL生成。CakePHP 2.3中的URL問題

  1. 我有,我想提交同樣的動作用不同的擴展名(.csv)的形式。爲此,我嘗試過:

    # FYI, $this->here = /admin/activities/index 
    $this->Form->create('Activity', 
        array('admin' => true, 'controller' => 'activities', 'action' => 'index', 'ext' => 'csv') 
    

    我得到的表單動作是action=".csv"

  2. 作爲一種可能的解決方法,我試着簡單地將url設置爲一個字符串 - 'url' => '/admin/activities/index.csv'。現在形式action看起來是正確的,但是當我提交表單時,我得到一個錯誤。

    Error: The action admin_index.csv is not defined in controller ActivitiesController 
    

缺少什麼我在這裏?我已閱讀2.3 FormHelper &路由器文檔以及我已經「跳過」(2.1,2.2,2.3)的每個版本的遷移文檔,我沒有看到任何跳到我的東西,但它不會「這是我第一次錯過什麼。

回答

0

您在#2中提到的內容不是解決方法,而是指定網址的正確方法。您得到的錯誤可能是因爲您在routes.php中缺少Router::parseExtensions()

編輯,只是要清楚這是您的Form-> create()應該看起來像。

$this->Form->create('Activity', 
    array('url' => array(
    'admin' => true, 'controller' => 'activities', 'action' => 'index', 'ext' => 'csv' 
)) 
); 

,並添加Router::parseExtensions()Router::parseExtensions('csv')如果你只想要擴展分析的.csv您routes.php文件

+0

該死。我知道這會很簡單。我啓用了'admin'路由前綴,但完全無法啓用擴展解析。謝啦。另外,我沒有意識到#2比數組語法更受歡迎。 – 2013-03-26 12:08:58

+0

啊,只是看到你的編輯。得到它了。謝謝你的幫助。 – 2013-03-26 12:09:21