2011-12-31 26 views
0

我有下面的代碼在我的應用程序創建一個表單:CakePHP的編輯表單鏈接中斷路由

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

,它具有類似於路線:

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

不過的動作是錯誤的.. 。

<form action="https://stackoverflow.com/users/edit/6" method="post" accept-charset="utf-8"> 

如果我把形式與默認:

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

然後它修復了路由問題,但爲什麼指定參數會破壞路由?

回答

1

當您在create()參數中指定一個實際的URL時 - 它將映射到該URL!路由配置不會向後映射。例如 - 如果您訪問/settings,則會加載/edit網頁,網址仍顯示/settings。但是,如果您訪問/edit,它將顯示網址並將加載頁面/edit

所以,如果你希望你的表單動作映射到/設置,不指定URL或使用URL選項array('url' => '/settings')