Browse Source

added Requst::json method.

Taylor Otwell 12 years ago
parent
commit
138d08c04b
2 changed files with 21 additions and 1 deletions
  1. 1 0
      laravel/documentation/changes.md
  2. 20 1
      laravel/request.php

+ 1 - 0
laravel/documentation/changes.md

@@ -67,6 +67,7 @@
 - Allow a `starter` Closure to be defined in `bundles.php` to be run on Bundle::start.
 - Allow the registration of custom database drivers.
 - New, driver based authentication system.
+- Added Request::json() method for working with applications using Backbone.js or similar.
 
 <a name="upgrade-3.2"></a>
 ## Upgrading From 3.1

+ 20 - 1
laravel/request.php

@@ -9,6 +9,13 @@ class Request {
 	 */
 	public static $route;
 
+	/**
+	 * The JSON payload for applications using Backbone.js or similar.
+	 *
+	 * @var object
+	 */
+	public static $json;
+
 	/**
 	 * The Symfony HttpFoundation Request instance.
 	 *
@@ -72,6 +79,18 @@ class Request {
 		return static::foundation()->headers->all();
 	}
 
+	/**
+	 * Get the JSON payload for the request.
+	 *
+	 * @return object
+	 */
+	public static function json()
+	{
+		if ( ! is_null(static::$json)) return static::$json;
+
+		return static::$json = json_decode(static::foundation()->getContent());
+	}
+
 	/**
 	 * Get an item from the $_SERVER array.
 	 *
@@ -232,7 +251,7 @@ class Request {
 		{
 			// Essentially we just want to loop through each environment pattern
 			// and determine if the current URI matches the pattern and if so
-			// we'll simply return the environment for that URI pattern.
+			// we will simply return the environment for that URI pattern.
 			foreach ($patterns as $pattern)
 			{
 				if (Str::is($pattern, $uri))