Browse Source

cleaning up code.

Taylor Otwell 12 years ago
parent
commit
579bc8719f

+ 1 - 1
laravel/database/eloquent/query.php

@@ -183,7 +183,7 @@ class Query {
 			$query->table->where_nested($constraints);
 			$query->table->where_nested($constraints);
 		}
 		}
 
 
-		// Before matching the models, we will initialize the relationship
+		// Before matching the models, we will initialize the relationships
 		// to either null for single-value relationships or an array for
 		// to either null for single-value relationships or an array for
 		// the multi-value relationships as their baseline value.
 		// the multi-value relationships as their baseline value.
 		$query->initialize($results, $relationship);
 		$query->initialize($results, $relationship);

+ 11 - 6
laravel/database/eloquent/relationships/has_many_and_belongs_to.php

@@ -239,7 +239,7 @@ class Has_Many_And_Belongs_To extends Relationship {
 		$this->with = array_merge($this->with, array($foreign, $other));
 		$this->with = array_merge($this->with, array($foreign, $other));
 
 
 		// Since pivot tables may have extra information on them that the developer
 		// Since pivot tables may have extra information on them that the developer
-		// needs, we allow an extra array of columns to be specified that will be
+		// needs we allow an extra array of columns to be specified that will be
 		// fetched from the pivot table and hydrate into the pivot model.
 		// fetched from the pivot table and hydrate into the pivot model.
 		foreach ($this->with as $column)
 		foreach ($this->with as $column)
 		{
 		{
@@ -314,9 +314,14 @@ class Has_Many_And_Belongs_To extends Relationship {
 	{
 	{
 		$foreign = $this->foreign_key();
 		$foreign = $this->foreign_key();
 
 
+		// For each child we'll just get the parent that connects to the child and set the
+		// child model on the relationship array using the keys. Once we're done looping
+		// through the children all of the proper relations will be set.
 		foreach ($children as $key => $child)
 		foreach ($children as $key => $child)
 		{
 		{
-			$parents[$child->pivot->$foreign]->relationships[$relationship][$child->{$child->key()}] = $child;
+			$parent =& $parents[$child->pivot->$foreign];
+
+			$parent->relationships[$relationship][$child->{$child->key()}] = $child;
 		}
 		}
 	}
 	}
 
 
@@ -337,7 +342,7 @@ class Has_Many_And_Belongs_To extends Relationship {
 
 
 			// If the attribute key starts with "pivot_", we know this is a column on
 			// If the attribute key starts with "pivot_", we know this is a column on
 			// the pivot table, so we will move it to the Pivot model and purge it
 			// the pivot table, so we will move it to the Pivot model and purge it
-			// from the model since it actually belongs to the pivot.
+			// from the model since it actually belongs to the pivot model.
 			foreach ($result->attributes as $key => $value)
 			foreach ($result->attributes as $key => $value)
 			{
 			{
 				if (starts_with($key, 'pivot_'))
 				if (starts_with($key, 'pivot_'))
@@ -367,9 +372,9 @@ class Has_Many_And_Belongs_To extends Relationship {
 	{
 	{
 		$columns = (is_array($columns)) ? $columns : func_get_args();
 		$columns = (is_array($columns)) ? $columns : func_get_args();
 
 
-		// The "with" array contains a couple of columns by default, so we will
-		// just merge in the developer specified columns here, and we'll make
-		// sure the values of the array are unique.
+		// The "with" array contains a couple of columns by default, so we will just
+		// merge in the developer specified columns here, and we will make sure
+		// the values of the array are unique to avoid duplicates.
 		$this->with = array_unique(array_merge($this->with, $columns));
 		$this->with = array_unique(array_merge($this->with, $columns));
 
 
 		$this->set_select($this->foreign_key(), $this->other_key());
 		$this->set_select($this->foreign_key(), $this->other_key());