В моем приложении у меня есть общее место для ошибок в представлении, которое я отображаю просто используя:
show_messages($errors->getMessages());
в show_messages
Функция Я анализирую ошибки так, как я хотел бы, чтобы они отображались. Однако я начал использовать некоторые группировки в моих формах, таких как register[email]
, Когда я отображаю ошибки, которые я использую ->withErrors(Input::get('register'), 'register')
,
Но теперь я не могу динамически получать сообщения, потому что $errors->getMessages()
идет к default
сумка сообщений по умолчанию (которая в этом случае пуста).
Я могу получить ошибки, используя $errors->register->getMessages()
, но это при условии, что я знаю, что это будет register
, Глядя на ViewErrorBag
класс я не вижу никаких методов, чтобы обеспечить сумку. Есть ли возможность сделать это без изменения текущего класса, чтобы динамически получать все пакеты или все сообщения в каждом пакете динамически?
Я не знаю, работает ли это в Laravel 4, но в Laravel 5 я использую $errors->all()
,
Вы можете просто перебрать все свойства объекта.
foreach ($errors as $errorBag) {
show_messages($errorBag->getMessages());
}
Хотя теоретически вам нужно проверить тип свойства, чтобы узнать, MessageBag
, MessageBag
не имеет других общедоступных свойств