Zend Framework не ищет действий в верблюжьей клетке при использовании маршрутизатора
Привет, ребята, я беспокоюсь, надеюсь, кто-то может пролить свет на это.
По какой-то странной причине мой маршрут подходит, говоря, что действие не существует, если я не изменяю верблюжий корпус на все строчные буквы для этого имени действия, тогда он работает нормально. но тогда это идет вразрез с соглашениями об именах! и я не хочу делать мой код небрежным либо.
Вот мой маршрут:
$FrontController = Zend_Controller_Front::getInstance();
$Router = $FrontController->getRouter();
$Router->addRoute("artistsave",
new Zend_Controller_Router_Route
(
"artist/save-artist",
array(
"controller"=>"artist",
"action" =>"saveArtist"
)
)
);
Теперь для меня это должно выглядеть в ArtistController для действия saveArtistsAction, но это не выдает эту ошибку:
К сожалению, вы столкнулись с ошибкой ниже. Действие "saveartist" не существует и не было перехвачено в __call()
Таким образом, похоже, что я удалил мой верблюжий корпус в маршрутизаторе, так как a for Artist теперь в нижнем регистре ошибки, и если я переименую свое действие, чтобы соответствовать этому, это работает!
Любая идея, почему он не ищет saveArtist?
Я понимаю, что мог бы просто переименовать его, чтобы сохранить, так как он является частью объекта Artist, но теперь я нашел это, что хотел бы понять, прежде чем отклеиться в другой раз в будущем.
Заранее спасибо за любую помощь:)
Как только я послал это, я понял это, но я чувствую, что другие могут влюбиться в ту же ошибку, поэтому лучше оставить это здесь и сообщить решение!
В маршрутизаторе он все еще находится в форматировании URL, я должен был использовать дефисы, а не верблюжий корпус, тогда фреймворк решает эту проблему. так вот мое исправление / решение:
$Router->addRoute("artistsave",
new Zend_Controller_Router_Route
(
"artist/save-artist",
array(
"controller"=>"artist",
"action" =>"save-artist"
)
)
);
Удачного кодирования:)
1 ответ
Соглашения об именах указывают, что ваши действия должны называться в нижнем регистре вплоть до слова "Действие".
Таким образом, правильный способ назвать действия:
saveartistsAction ()
somethingthatdoessomethingelseAction ()