У меня есть маршрут для пользовательского контроллера. Этот контроллер имеет около 20 методов, поэтому я не хочу устанавливать их вручную в маршрутах:
Route::set('user', 'user/<action>')
->defaults(array(
'controller' => 'user',
'action' => 'index',
));
У меня также есть контроллер изображений (Controller_User_Pictures) с несколькими методами, которые используются для управления изображениями пользователей. Когда я создаю маршрут:
Route::set('pictures', 'user/pictures/<action>')
->defaults(array(
'directory' => 'user',
'controller' => 'user_pictures',
'action' => 'index',
));
Это не работает.
Даже если я создаю отдельный контроллер (Controller_Pictures) и создаю маршрут, он не работает:
Route::set('pictures', 'user/pictures/<action>')
->defaults(array(
'directory' => 'user',
'controller' => 'pictures',
'action' => 'index',
));
Во всех случаях возвращается ошибка: Method action_pictures does not exist
, что означает, что маршрутизатор ищет действие, называемое картинками в пользовательском контроллере, что, конечно, неправильно.
Единственное решение, о котором я думаю, - это определить все маршруты в файле bootstrap.php. У вас есть лучшее решение?
Редактировать
Второй вопрос, есть ли идеи, как заменить подчеркивание на дефис в любых действиях (конечно, в маршрутизации)?