0

为什么我会为不存在的函数收到“缺少路线”错误。

Reservations控制器内部,我有add一个参数的函数:

public function add($carid = null)
{
... 
}

匹配路线:

Router::scope('/', function ($routes) {
Router::connect('/rentcar/:id', ['controller' => 'Reservations', 'action' => 'add'],['pass' => ['id'], 'id' => '[0-9]+']);
// rest of the routes not important 
...
});
Plugin::routes();

当我访问任何页面时,我看到以下错误:

http://i.stack.imgur.com/ESX5I.jpg

错误消息说:

错误:找不到匹配“数组('controller' => 'Reservations', 'action' => 'add', 'plugin' => NULL, '_ext' => NULL, )”的路由。

...这很奇怪,因为我没有add()没有参数的函数,相反,我有add($carid)一个参数的函数。

但是当我添加那条路线时,一切正常:

Router::connect('/rentcar2', ['controller' => 'Reservations', 'action' => 'add']);

到底是怎么回事?

4

1 回答 1

0

问题在于注释掉了其中包含 PHP 代码的 HTML 代码,代码如下:

<!-- <li role="presentation"><?= $this->Html->link(__('New Reservation'), ['controller' => 'Reservations', 'action' => 'add']) ?></li> -->

其中包含我的旧函数,没有控制器的参数addReservations我删除了任何类似的代码,一切正常。

于 2016-02-10T22:28:12.403 回答