Commit b5f5927f by Taylor Otwell

Fix bug with many-to-many relationships on non-default database connection.

parent 9ed91af1
...@@ -20,11 +20,13 @@ class Pivot extends Model { ...@@ -20,11 +20,13 @@ class Pivot extends Model {
* Create a new pivot table instance. * Create a new pivot table instance.
* *
* @param string $table * @param string $table
* @param string $connection
* @return void * @return void
*/ */
public function __construct($table) public function __construct($table, $connection = null)
{ {
$this->pivot_table = $table; $this->pivot_table = $table;
$this->connection = $connection;
parent::__construct(array(), true); parent::__construct(array(), true);
} }
...@@ -39,4 +41,14 @@ class Pivot extends Model { ...@@ -39,4 +41,14 @@ class Pivot extends Model {
return $this->pivot_table; return $this->pivot_table;
} }
/**
* Get the connection used by the pivot table.
*
* @return string
*/
public function connection()
{
return $this->connection;
}
} }
\ No newline at end of file
...@@ -349,7 +349,7 @@ class Has_Many_And_Belongs_To extends Relationship { ...@@ -349,7 +349,7 @@ class Has_Many_And_Belongs_To extends Relationship {
// Every model result for a many-to-many relationship needs a Pivot instance // Every model result for a many-to-many relationship needs a Pivot instance
// to represent the pivot table's columns. Sometimes extra columns are on // to represent the pivot table's columns. Sometimes extra columns are on
// the pivot table that may need to be accessed by the developer. // the pivot table that may need to be accessed by the developer.
$pivot = new Pivot($this->joining); $pivot = new Pivot($this->joining, $this->model->connection());
// 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
...@@ -400,7 +400,9 @@ class Has_Many_And_Belongs_To extends Relationship { ...@@ -400,7 +400,9 @@ class Has_Many_And_Belongs_To extends Relationship {
*/ */
public function pivot() public function pivot()
{ {
return new Has_Many($this->base, new Pivot($this->joining), $this->foreign_key()); $pivot = new Pivot($this->joining, $this->model->connection());
return new Has_Many($this->base, $pivot, $this->foreign_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