Commit 579bc871 authored by Taylor Otwell's avatar Taylor Otwell

cleaning up code.

parent 144117c0
...@@ -183,7 +183,7 @@ class Query { ...@@ -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);
......
...@@ -239,7 +239,7 @@ class Has_Many_And_Belongs_To extends Relationship { ...@@ -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 { ...@@ -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 { ...@@ -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 { ...@@ -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 // The "with" array contains a couple of columns by default, so we will just
// just merge in the developer specified columns here, and we'll make // merge in the developer specified columns here, and we will make sure
// sure the values of the array are unique. // 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());
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment