|
|
@@ -621,6 +621,7 @@ class ModelTask extends BakeTask {
|
|
|
public function findHasAndBelongsToMany(Model $model, $associations) {
|
|
|
$foreignKey = $this->_modelKey($model->name);
|
|
|
foreach ($this->_tables as $otherTable) {
|
|
|
+ $tableName = null;
|
|
|
$tempOtherModel = $this->_getModelObject($this->_modelName($otherTable), $otherTable);
|
|
|
$modelFieldsTemp = $tempOtherModel->schema(true);
|
|
|
|
|
|
@@ -628,17 +629,12 @@ class ModelTask extends BakeTask {
|
|
|
$otherOffset = strpos($otherTable, '_' . $model->table);
|
|
|
|
|
|
if ($offset === 0) {
|
|
|
- $offset = strlen($model->table . '_');
|
|
|
- $habtmName = $this->_modelName(substr($otherTable, $offset));
|
|
|
- $associations['hasAndBelongsToMany'][] = array(
|
|
|
- 'alias' => $habtmName,
|
|
|
- 'className' => $habtmName,
|
|
|
- 'foreignKey' => $foreignKey,
|
|
|
- 'associationForeignKey' => $this->_modelKey($habtmName),
|
|
|
- 'joinTable' => $otherTable
|
|
|
- );
|
|
|
+ $tableName = substr($otherTable, strlen($model->table . '_'));
|
|
|
} elseif ($otherOffset === 0) {
|
|
|
- $habtmName = $this->_modelName(substr($otherTable, 0, $otherOffset));
|
|
|
+ $tableName = substr($otherTable, 0, $otherOffset);
|
|
|
+ }
|
|
|
+ if ($tableName && in_array($tableName, $this->_tables)) {
|
|
|
+ $habtmName = $this->_modelName($tableName);
|
|
|
$associations['hasAndBelongsToMany'][] = array(
|
|
|
'alias' => $habtmName,
|
|
|
'className' => $habtmName,
|