Browse Source

Added "add_" magic method to eloquent model.

Taylor Otwell 12 years ago
parent
commit
bb2f458304
1 changed files with 11 additions and 2 deletions
  1. 11 2
      laravel/database/eloquent/model.php

+ 11 - 2
laravel/database/eloquent/model.php

@@ -577,12 +577,21 @@ abstract class Model {
 		// to perform the appropriate action based on the method.
 		if (starts_with($method, 'get_'))
 		{
-			return $this->get_attribute(substr($method, 4));
+			return $this->attributes[substr($method, 4)];
 		}
 		elseif (starts_with($method, 'set_'))
 		{
-			return $this->set_attribute(substr($method, 4), $parameters[0]);
+			$this->attributes[substr($method, 4)] = $parameters[0];
 		}
+
+		// If the method begins with "add_", we will assume that the developer is
+		// adding a related model instance to the model. This is useful for
+		// adding all of the related models and then saving at once.
+		elseif (starts_with($method, 'add_'))
+		{
+			$this->relationships[substr($method, 4)][] = $parameters[0];
+		}
+
 		// Finally we will assume that the method is actually the beginning of a
 		// query, such as "where", and will create a new query instance and
 		// call the method on the query instance, returning it after.