Использование flash()
в CFWheels довольно прямолинейно, но я нахожусь в точке, где мне нужно вставить больше, чем просто одно сообщение. Если я сделаю 3 flashInsert()
звонки, только последний будет отображаться на выходе flash()
.Лучший способ использовать flash() в CFWheels?
В работе вокруг, я пришел с этим:
public void function index() {
local.messages = [];
arrayAppend(local.messages, { message="Test message 1.", type="ok" });
arrayAppend(local.messages, { message="Test message 2.", type="ok" });
arrayAppend(local.messages, { message="Test message 3.", type="ok" });
flashInsert(local.messages);
WriteDump(var=flash(), abort=true);
}
Таким образом, я могу затем цикл вспышки() в виде массива в его объекте ... доступа сообщение и тип ключа на каждый.
Но знаешь что? Это кажется грязным! И, повторяя это для каждого действия, в котором я нуждаюсь, похоже, что я нарушаю этот священный принцип СУХОЙ.
Я рассмотрел как можно больше связанных функций, связанных со вспышкой, но ничего похожего на этот вывод не наблюдается.
У меня также есть преимущество указывать столько ключей, сколько я хочу в этом объекте сообщения ... что приятно, так как это может помочь с выходом HTML.
Я ценю ваши мысли по этому ...
Мики.
Вспышки отлично подходит для основного обмена сообщений, но с более сложным контроллером, который выстреливает несколько вещей, на основе пользовательского ввода, было бы неплохо иметь несколько сообщений, динамически размещаемые. Я бы тогда просто будьте в состоянии зацикливать сообщения. У меня есть обход, который я выложу выше ... но он все еще чувствует себя немного «грязным».В моем цикле я не хочу угадывать имена ключей, я просто хочу его зациклить и оставить. –
Я только что представил свой собственный ответ - посмотри и посмотри, что ты думаешь ?! –
'flashMessages' делает то, что вы ищете. Вы изучили это? http://cfwheels.org/docs/1-1/function/flashmessages Обратите внимание, что первый аргумент является необязательным. –