Почему я получаю сообщение об ошибке «Отсутствует маршрут» для несуществующей функции.
Внутри контроллера 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']);
Что происходит?
<?= $this->Html->link(__('Reservation'), ['controller' => 'Reservations','action' => 'add', $car->id]) ?>
- person Br.sasa   schedule 10.02.2016reservations/add($carid)
вызывается НЕ с текущего контроллераreservations
, а с контроллераcars
, поэтому я указываю полный URL-адрес для функции add($carid):<?= $this->Html->link(__('Reservation'), ['controller' => 'Reservations','action' => 'add', $car->id]) ?
, но cakePHP не распознает переданный параметр $car -›id, чтобы он соответствовал маршрутуRouter::connect('/rentcar/:id', ['controller' => 'Reservations', 'action' => 'add'],['pass' => ['id'], 'id' => '[0-9]+']);
- person Br.sasa   schedule 10.02.2016Router::connect()
не должны быть вложенными), поэтому проблема, вероятно, где-то еще, вероятно, такая же, как в связанном вопросе, но я Не буду дальше стрелять в темноте, так что еще раз, пожалуйста, покажите stacktrace! - person ndm   schedule 10.02.2016<!-- .... <li role="presentation"><?= $this->Html->link(__('New Reservation'), ['controller' => 'Reservations', 'action' => 'add']) ?></li> -->
большое спасибо, чувак. - person Br.sasa   schedule 11.02.2016