Adding auto detection of intermediate table names.

Signed-off-by: Taylor Otwell <taylorotwell@gmail.com>
This commit is contained in:
Taylor Otwell
2012-03-16 13:01:48 -05:00
parent c3d95122e4
commit dc92dd264d
3 changed files with 33 additions and 2 deletions

View File

@@ -39,11 +39,27 @@ class Has_Many_And_Belongs_To extends Relationship {
{
$this->other = $other;
$this->joining = $table;
$this->joining = $table ?: $this->joining($model, $associated);
parent::__construct($model, $associated, $foreign);
}
/**
* Determine the joining table name for the relationship.
*
* By default, the name is the models sorted and concatenated with an underscore.
*
* @return string
*/
protected function joining($model, $associated)
{
$models = array(class_basename($model), class_basename($associated));
sort($models);
return strtolower($models[0].'_'.$models[1]);
}
/**
* Get the properly hydrated results for the relationship.
*