Skip to content

Commit

Permalink
revert eloquent back to 3.2.3
Browse files Browse the repository at this point in the history
  • Loading branch information
taylorotwell committed Aug 17, 2012
1 parent e8119f8 commit 1203473
Show file tree
Hide file tree
Showing 5 changed files with 22 additions and 51 deletions.
26 changes: 5 additions & 21 deletions laravel/database/eloquent/model.php
Expand Up @@ -255,22 +255,7 @@ public static function all()
*/
public function _with($includes)
{
$includes = (array) $includes;

$this->includes = array();

foreach ($includes as $relationship => $constraints)
{
// When eager loading relationships, constraints may be set on the eager
// load definition; however, is none are set, we need to swap the key
// and the value of the array since there are no constraints.
if (is_numeric($relationship))
{
list($relationship, $constraints) = array($constraints, null);
}

$this->includes[$relationship] = $constraints;
}
$this->includes = (array) $includes;

return $this;
}
Expand Down Expand Up @@ -533,7 +518,7 @@ public function get_dirty()

foreach ($this->attributes as $key => $value)
{
if ( ! array_key_exists($key, $this->original) or $value !== $this->original[$key])
if ( ! isset($this->original[$key]) or $value !== $this->original[$key])
{
$dirty[$key] = $value;
}
Expand Down Expand Up @@ -567,7 +552,6 @@ public function set_key($value)
* Get a given attribute from the model.
*
* @param string $key
* @return mixed
*/
public function get_attribute($key)
{
Expand Down Expand Up @@ -723,7 +707,7 @@ public function __isset($key)
{
foreach (array('attributes', 'relationships') as $source)
{
if (array_key_exists($key, $this->$source)) return !is_null($this->$source[$key]);
if (array_key_exists($key, $this->$source)) return true;
}

if (method_exists($this, $key)) return true;
Expand Down Expand Up @@ -754,7 +738,7 @@ public function __call($method, $parameters)
{
$meta = array('key', 'table', 'connection', 'sequence', 'per_page', 'timestamps');

// If the method is actually the name of a static property on the model, we'll
// If the method is actually the name of a static property on the model we'll
// return the value of the static property. This makes it convenient for
// relationships to access these values off of the instances.
if (in_array($method, $meta))
Expand All @@ -764,7 +748,7 @@ public function __call($method, $parameters)

$underscored = array('with', 'find');

// Some methods need to be accessed both statically and non-statically so we'll
// Some methods need to be accessed both staticly and non-staticly so we'll
// keep underscored methods of those methods and intercept calls to them
// here so they can be called either way on the model instance.
if (in_array($method, $underscored))
Expand Down
5 changes: 2 additions & 3 deletions laravel/database/eloquent/relationships/belongs_to.php
Expand Up @@ -79,9 +79,8 @@ public function eagerly_constrain($results)
/**
* Match eagerly loaded child models to their parent models.
*
* @param string $relationship
* @param array $children
* @param array $parents
* @param array $children
* @param array $parents
* @return void
*/
public function match($relationship, &$children, $parents)
Expand Down
5 changes: 2 additions & 3 deletions laravel/database/eloquent/relationships/has_many.php
Expand Up @@ -83,9 +83,8 @@ public function initialize(&$parents, $relationship)
/**
* Match eagerly loaded child models to their parent models.
*
* @param string $relationship
* @param array $parents
* @param array $children
* @param array $parents
* @param array $children
* @return void
*/
public function match($relationship, &$parents, $children)
Expand Down
32 changes: 11 additions & 21 deletions laravel/database/eloquent/relationships/has_many_and_belongs_to.php
Expand Up @@ -44,7 +44,7 @@ public function __construct($model, $associated, $table, $foreign, $other)
$this->joining = $table ?: $this->joining($model, $associated);

// If the Pivot table is timestamped, we'll set the timestamp columns to be
// fetched when the pivot table models are fetched by the developer, or else
// fetched when the pivot table models are fetched by the developer else
// the ID will be the only "extra" column fetched in by default.
if (Pivot::$timestamps)
{
Expand All @@ -61,8 +61,6 @@ public function __construct($model, $associated, $table, $foreign, $other)
*
* By default, the name is the models sorted and joined with underscores.
*
* @param Model $model
* @param string $associated
* @return string
*/
protected function joining($model, $associated)
Expand All @@ -88,7 +86,7 @@ public function results()
* Insert a new record into the joining table of the association.
*
* @param int $id
* @param array $attributes
* @param array $joining
* @return bool
*/
public function attach($id, $attributes = array())
Expand Down Expand Up @@ -133,7 +131,7 @@ public function sync($ids)
}

// Next we will take the difference of the current and given IDs and detach
// all of the entities that exist in the current array but are not in
// all of the entities that exists in the current array but are not in
// the array of IDs given to the method, finishing the sync.
$detach = array_diff($current, $ids);

Expand Down Expand Up @@ -319,30 +317,22 @@ public function eagerly_constrain($results)
/**
* Match eagerly loaded child models to their parent models.
*
* @param string $relationship
* @param array $parents
* @param array $children
* @param array $parents
* @param array $children
* @return void
*/
public function match($relationship, &$parents, $children)
{
$foreign = $this->foreign_key();

$dictionary = array();

foreach ($children as $child)
{
$dictionary[$child->pivot->$foreign][] = $child;
}

foreach ($parents as &$parent)
{
$parent_key = $parent->get_key();

if (isset($dictionary[$parent_key]))
$matching = array_filter($children, function($v) use (&$parent, $foreign)
{
$parent->relationships[$relationship] = $dictionary[$parent_key];
}
return $v->pivot->$foreign == $parent->get_key();
});

$parent->relationships[$relationship] = array_values($matching);
}
}

Expand Down Expand Up @@ -386,7 +376,7 @@ protected function hydrate_pivot(&$results)
/**
* Set the columns on the joining table that should be fetched.
*
* @param array $columns
* @param array $column
* @return Relationship
*/
public function with($columns)
Expand Down
5 changes: 2 additions & 3 deletions laravel/database/eloquent/relationships/has_one.php
Expand Up @@ -30,9 +30,8 @@ public function initialize(&$parents, $relationship)
/**
* Match eagerly loaded child models to their parent models.
*
* @param string $relationship
* @param array $parents
* @param array $children
* @param array $parents
* @param array $children
* @return void
*/
public function match($relationship, &$parents, $children)
Expand Down

0 comments on commit 1203473

Please sign in to comment.