CakePHP编辑表单url中断路由

时间:2011-12-31 00:24:40

标签: php cakephp

我有以下代码在我的应用中创建表单:

<?php echo $this->Form->create('User', array('action'=>'edit')); ?>

它的路线如下:

Router::connect('/settings', array('controller'=>'users','action'=>'edit'));

然而行动是错误的......

<form action="/users/edit/6" method="post" accept-charset="utf-8">

如果我将表单设置为默认值:

<?php echo $this->Form->create(); ?>

然后它修复了路由问题,但为什么指定参数会破坏路由???

1 个答案:

答案 0 :(得分:1)

当您在create()参数中指定实际的URL时,它将映射到该URL!路由配置不会向后映射。例如 - 如果您访问/settings,则会加载/edit页面并且网址仍显示/settings。但是,如果您访问/edit,则会显示该网址,并会加载页面/edit

因此,如果您希望表单操作映射到/ settings,请不要指定网址或使用网址选项array('url' => '/settings')