通过 ajax 检索 Laravel 4.2 消息包


Retrieve Laravel 4.2 messagebag via ajax

我希望能够通过ajax检索laravel消息包内容,例如验证错误或我放在表单页面上的其他消息。

我目前使用 withErrors 将错误返回到View,并且对这种方法感到满意。我现在希望使用 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);
});

目前这不起作用并返回一个空对象。

  1. 如何从 php 脚本中检索当前messagebag的内容?
  2. messagebag何时到期?是什么触发了它过期?

困惑。

MessageBag 只是一个花哨的键/值存储。要从那里检索消息,您可以使用 $messageBag->get('error') .

要在其他地方使用此消息包,您需要将其保存 - 例如在会话中。但是,简单地存储错误数组并忘记 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/