我正在制作自己的名為 Rma 的 cakephp 2 插件,并為此插件制作了一些路由。當我想制作一個鏈接到編輯頁面的表單時,該鏈接與我的路由文件中的鏈接不同。在瀏覽器中,我的路由正常工作,但是當我更改表單操作或回顯 Html 鏈接時,cakephp 會生成不同的鏈接。該代碼echo $this->Html->url(array('plugin' => 'Rma', 'controller' => 'RmaRequests', 'action' => 'edit', 2));為我提供了以下 url:'/Rma/RmaRequests/edit/2',而路由文件中的 url 為'/rma/edit/:id'。Cakephp 給了我錯誤的網址。這是我在插件配置文件夾中的 routes.php (app/Plugin/Rma/Config/routes.php):Router::connect('/rma/new', [ 'plugin' => 'Rma', 'controller' => 'RmaRequests', 'action' => 'add']);Router::connect('/rma/edit/:id', [ 'plugin' => 'Rma', 'controller' => 'RmaRequests', 'action' => 'edit'], array( // order matters since this will simply map ":id" to // $articleId in your action 'pass' => array('id'), 'id' => '[0-9]+' ));Router::connect('/rma/new/:id/', array( 'plugin' => 'Rma', 'controller' => 'RmaRequestProducts', 'action' => 'add'), array( // order matters since this will simply map ":id" to 'pass' => array('id'), 'id' => '[0-9]+' ));我也嘗試將路由放在我的應用程序 routes.php 中,但這仍然沒有解決問題。這是我在 app/Config/bootstrap.php 中加載插件的方式: CakePlugin::load('Rma', array('routes' => true, 'bootstrap' => true));有什么我忘記了或者我做錯了什么嗎?我正在使用 CakePHP 版本 2.5.1
1 回答

料青山看我應如是
TA貢獻1772條經驗 獲得超8個贊
答案,thnx to @ndm in the comments:
Url 有一個名為 id 的命名參數。代替: echo $this->Html->url(array('plugin' => 'Rma', 'controller' => 'RmaRequests', 'action' => 'edit', 2));
一定是
echo $this->Html->url(array('plugin' => 'Rma', 'controller' => 'RmaRequests', 'action' => 'edit', 'id'=> 2));
- 1 回答
- 0 關注
- 118 瀏覽
添加回答
舉報
0/150
提交
取消