0

我在 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
    

我在这里想念什么?我已经阅读了 2.3 FormHelper & Router 文档以及我“跳过”的每个版本(2.1、2.2、2.3)的迁移文档,我没有看到任何让我兴奋的东西,但它不会这不是我第一次错过什么。

4

1 回答 1

0

您在 #2 中提到的不是解决方法,而是指定 url 的正确方法。你得到的错误可能是因为你Router::parseExtensions()在你的 routes.php中丢失了

编辑,只是为了清楚这就是您的 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

于 2013-03-26T12:05:19.583 回答