2013-03-26 69 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