我在CakePHP 1.3上有一段不错的历史,但我正在开发我的第一个2.x(在这种情况下是2.3)应用程序并且遇到了出现的几个奇怪的问题URL生成,我希望有人可以帮助我。
我有一个表单,我想提交给具有不同扩展名(.csv
)的相同操作。为此,我尝试了:
# FYI, $this->here = /admin/activities/index
$this->Form->create('Activity',
array( 'admin' => true, 'controller' => 'activities', 'action' => 'index', 'ext' => 'csv' )
我的表格操作是action=".csv"
。
作为一种可能的解决方法,我尝试将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 :(得分: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扩展名