Added "add_" magic method to eloquent model.

This commit is contained in:
Taylor Otwell 2012-03-21 14:23:46 -05:00
parent 2fe7cfd910
commit bb2f458304
1 changed files with 11 additions and 2 deletions

View File

@ -577,12 +577,21 @@ public function __call($method, $parameters)
// to perform the appropriate action based on the method. // to perform the appropriate action based on the method.
if (starts_with($method, 'get_')) if (starts_with($method, 'get_'))
{ {
return $this->get_attribute(substr($method, 4)); return $this->attributes[substr($method, 4)];
} }
elseif (starts_with($method, 'set_')) 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 // 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 // query, such as "where", and will create a new query instance and
// call the method on the query instance, returning it after. // call the method on the query instance, returning it after.