为什么我会得到#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']);
发生了什么事?
答案 0 :(得分:0)
问题在于注释掉HTML代码,里面包含PHP代码,代码如下:
<!-- <li role="presentation"><?= $this->Html->link(__('New Reservation'), ['controller' => 'Reservations', 'action' => 'add']) ?></li> -->
其中包含我的旧函数,没有add
控制器的Reservations
参数。
我删除了任何类似的代码,一切正常。