我希望能够检索laravel messagebag内容,例如验证错误或我在表单页面放置的其他消息但是通过ajax。
我目前使用View
将错误返回到withErrors
,并对此方法感到满意。我现在想要使用jquery在页面上显示弹出窗口和其他警报。
我已经创建了一个针对php脚本的ajax调用,该脚本尝试检索错误消息,但我无法使用这个简单的工作。
所以:
假设我已设置如下消息:
$message = new Illuminate\Support\MessageBag;
$message->add( 'error', "Reservation Not Found. Error has been reported" );
然后我想用以下内容检索该消息:
Route::get('fetcherrors', function() {
$errors = Session::get('errors');
return Response::json($errors);
});
目前这不起作用并返回一个空对象。
messagebag
的内容?messagebag
什么时候到期?什么触发它到期?混淆。
答案 0 :(得分:1)
MessageBag只是一个奇特的键/值存储。要从那里检索消息,您可以使用$messageBag->get('error')
。
要在其他地方使用此MessageBag,您需要将其保存在例如Session中。 但是,简单地存储错误数组并忘记MessageBags可能更容易。如果您只需要验证某些用户输入并保存错误消息以便以后检索它们,这就是我建议的方法。示例代码:
// Validation result
$errors = ['An error', 'Another error'];
Session::put('errors', $errors);
// Get error messages
$errors = Session::get('errors');
return Response::Json($errors);
如果你有更多的消息,你试图保存并且你坚持使用MessageBags并希望以优雅的方式做到这一点,这里有一篇解释它的文章:http://toddish.co.uk/blog/global-site-messages-in-laravel-4/