У меня есть базовое действие контроллера, которое выполняет findByKey(). URL-адрес будет выглядеть так:
/пин/показать/45
Однако, если «45» отсутствует (params.key), я хочу перенаправить их только на /pin/.
На данный момент, когда ключ не указан, кажется, что все еще отображается действие show со ВСЕМИ сообщениями. Я немного смущен этим.
Кроме того, если я проверяю действие show() для params.key, оно не работает должным образом; мое перенаправление не происходит ... хотя параметры дампа не отображаются, ключ отсутствует.
Вот мое действие show():
public void function show() {
if( !structKeyExists(params, "key") ) {
flashInsert( messages = [{ messageString="Key is required.", messageType="error" }] );
redirectTo(route="pin");
}
param name="params.page" default="1";
param name="params.pageQuantity" default="10";
pins = model("pin").findByKey(
key = params.key,
returnAs = "query",
include = "user",
order = "createdat DESC",
page = params.page,
perPage = params.pageQuantity
);
}
Любая помощь будет оценена по достоинству!
Спасибо, Майкл.
Обновление:
Кажется, это может иметь какое-то отношение к маршрутам? Вот мои маршруты для булавки, ниже:
addRoute(name="pinShow", pattern="pin/show/[key]", controller="pin", action="show");
addRoute(name="pinEdit", pattern="pin/edit/[key]", controller="pin", action="edit");
addRoute(name="pinDelete", pattern="pin/delete/[key]", controller="pin", action="delete");
addRoute(name="pinUpdate", pattern="pin/update", controller="pin", action="update");
addRoute(name="pinNew", pattern="pin/new", controller="pin", action="new");
addRoute(name="pinCreate", pattern="pin/create", controller="pin", action="create");
addRoute(name="pinWanted", pattern="pin/wanted", controller="pin", action="wanted");
addRoute(name="pin", pattern="pin", controller="pin", action="index");
Теперь многие из этих маршрутов могут показаться бессмысленными, поскольку они используют тот же шаблон URL, что и без маршрута, но в будущем планируется изменить их.
Когда я нажимаю /pin/show/ без ключа, кажется, что загружается контроллер /pin/index/ и действие, но по-прежнему отображается /pin/show/ в URL-адресе.