存在しない関数に対して「Missing Route」エラーが発生するのはなぜですか。
Reservations
コントローラー内にはadd
、1 つの引数を持つ関数があります。
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
エラーメッセージには次のように記載されています。
エラー: "array ( 'controller' => 'Reservations', 'action' => 'add', 'plugin' => NULL, '_ext' => NULL, )" に一致するルートが見つかりませんでした。
...引数のない関数を持っていないので、これは奇妙です。add()
代わりに、add($carid)
1つの引数を持つ関数があります。
しかし、そのルートを追加すると、すべて正常に動作します:
Router::connect('/rentcar2', ['controller' => 'Reservations', 'action' => 'add']);
何が起こっている?