我有以下代码在我的应用中创建表单:
<?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(); ?>
然后它修复了路由问题,但为什么指定参数会破坏路由???
答案 0 :(得分:1)
当您在create()参数中指定实际的URL时,它将映射到该URL!路由配置不会向后映射。例如 - 如果您访问/settings
,则会加载/edit
页面并且网址仍显示/settings
。但是,如果您访问/edit
,则会显示该网址,并会加载页面/edit
。
因此,如果您希望表单操作映射到/ settings,请不要指定网址或使用网址选项array('url' => '/settings')