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 ()

Другие вопросы по тегам