CakePHP 3:缺少不存在的功能的路由错误

时间:2016-02-10 16:54:45

标签: php cakephp cakephp-3.x

为什么我会得到#34;缺少路线"不存在的函数的错误。

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

错误消息显示:

  

错误:路线匹配"阵列('控制器' =>'预订',   '动作' => '添加','插件' => NULL,' _ext' => NULL,)"不可能   找到。

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

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

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

发生了什么事?

1 个答案:

答案 0 :(得分:0)

问题在于注释掉HTML代码,里面包含PHP代码,代码如下:

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

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