У меня есть основное действие контроллера, которое делает findByKey(). URL будет выглядеть следующим образом:CFWheels -Redirect пользователь, если params.key не существует?
/контакт/шоу/45
Однако, если '45' это нет (params.key), я хочу, чтобы перенаправить их просто/контакт /.
В настоящий момент, когда не указан ни один ключ, он все равно отображает действие шоу со всеми сообщениями. Я немного смущен этим.
Кроме того, если я делаю чек в действии show() для params.key, он не работает должным образом; мое перенаправление не происходит ... даже несмотря на то, что сбрасывает параметры, пока не отображается ключ.
Вот мое шоу() Действие:
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
);
}
Любая помощь будет оценен по достоинству!
Thanks, Michael.
Update:
Кажется, это может иметь что-то сделать с маршрутами? Вот мои маршруты для штыря, ниже:
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/index/controller и action, но все еще показывает/pin/show/в URL.
Включает ли этот код в ваш оператор if? Определен ли ключ, но пустой? –
Код в инструкции if никогда не выполняется, независимо от того, отображается или нет params.key в структуре. Интересно, однако, когда я выдаю параметры, я вижу, что действие является индексом.Так что почти так, как если бы запись не была найдена, она просто загружает действие по умолчанию - не то, что я хочу, поскольку URL-адрес все еще показывает/pin/show/ –