Commit 57c5bedb authored by Jens Segers's avatar Jens Segers

Merge pull request #76 from DyeH/master

Fixed sync bug
parents d709d4a8 545dde78
...@@ -170,6 +170,9 @@ class BelongsToMany extends EloquentBelongsToMany { ...@@ -170,6 +170,9 @@ class BelongsToMany extends EloquentBelongsToMany {
$query = $this->newParentQuery(); $query = $this->newParentQuery();
// Generate a new related query instance
$related = $this->related->newInstance();
// If associated IDs were passed to the method we will only delete those // If associated IDs were passed to the method we will only delete those
// associations, otherwise all of the association ties will be broken. // associations, otherwise all of the association ties will be broken.
// We'll return the numbers of affected rows when we do the deletes. // We'll return the numbers of affected rows when we do the deletes.
...@@ -190,6 +193,9 @@ class BelongsToMany extends EloquentBelongsToMany { ...@@ -190,6 +193,9 @@ class BelongsToMany extends EloquentBelongsToMany {
$query->pull($this->otherKey, $id); $query->pull($this->otherKey, $id);
} }
// Remove the relation from the related model
$related->pull($this->foreignKey, $this->parent->getKey());
return count($ids); return count($ids);
} }
......
...@@ -190,8 +190,8 @@ class RelationsTest extends PHPUnit_Framework_TestCase { ...@@ -190,8 +190,8 @@ class RelationsTest extends PHPUnit_Framework_TestCase {
); );
$moreClients = array( $moreClients = array(
Client::create(array('name' => 'Boloni Ltd.'))->_id, Client::create(array('name' => 'synced Boloni Ltd.'))->_id,
Client::create(array('name' => 'Meatballs Inc.'))->_id Client::create(array('name' => 'synced Meatballs Inc.'))->_id
); );
// Sync multiple records // Sync multiple records
...@@ -209,7 +209,10 @@ class RelationsTest extends PHPUnit_Framework_TestCase { ...@@ -209,7 +209,10 @@ class RelationsTest extends PHPUnit_Framework_TestCase {
$user = User::with('clients')->find($user->_id); $user = User::with('clients')->find($user->_id);
// Assert there are now 4 client objects in the relationship // Assert there are now still 2 client objects in the relationship
$this->assertCount(4, $user->clients); $this->assertCount(2, $user->clients);
// Assert that the new relationships name start with synced
$this->assertStringStartsWith('synced', $user->clients[0]->name);
$this->assertStringStartsWith('synced', $user->clients[1]->name);
} }
} }
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