CakePHP 2.3中的URL问题

时间:2013-03-26 11:45:49

标签: cakephp cakephp-2.3

我在CakePHP 1.3上有一段不错的历史,但我正在开发我的第一个2.x(在这种情况下是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
    
  3. 我在这里缺少什么?我已经阅读了2.3 FormHelper&路由器文档以及我已经“跳过”的每个版本的迁移文档(2.1,2.2,2.3),我没有看到任何跳出来的东西,但这不是我第一次错过东西。

1 个答案:

答案 0 :(得分: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'),如果您只想解析routes.php的.csv扩展名