Skip to content

Commit

Permalink
fixing up auto joins
Browse files Browse the repository at this point in the history
  • Loading branch information
dogmatic69 committed Oct 7, 2012
1 parent 6d8b0a4 commit 8b3e841
Showing 1 changed file with 20 additions and 3 deletions.
23 changes: 20 additions & 3 deletions Model/AppModel.php
Expand Up @@ -347,10 +347,27 @@ protected function _joinConditions($Model, &$options) {
$FromModel = $this->_getModelObject($options['from']);
}

$alias = $Model->alias;
if(!empty($options['alias'])) {
$alias = $options['alias'];
}

$relationType = $this->_relationType($Model, $FromModel);
switch($relationType) {
case 'hasOne':
throw new InvalidArgumentException('Not implemented');
if(empty($FromModel->{$relationType}[$Model->alias]['foreignKey'])) {
if(empty($FromModel->{$relationType}[$Model->alias]['conditions'])) {
throw new InvalidArgumentException('Unable to determin relation');
}

return $options['conditions'] = $FromModel->{$relationType}[$Model->alias]['conditions'];
}

if(!empty($FromModel->{$relationType}[$Model->alias]['conditions'])) {
$options['conditions'] = $FromModel->{$relationType}[$Model->alias]['conditions'];
}
$options['conditions'][] = $options['alias'] . '.' . $FromModel->{$relationType}[$Model->alias]['foreignKey'] . ' = ' . $FromModel->alias . '.' . $FromModel->primaryKey;
return;
break;

case 'hasMany':
Expand All @@ -365,11 +382,11 @@ protected function _joinConditions($Model, &$options) {

if($relationType == 'belongsTo') {
return $options['conditions'] = array(
$Model->alias . '.' . $FromModel->primaryKey . ' = ' . $FromModel->alias . '.' . $FromModel->{$relationType}[$Model->alias]['foreignKey']
$options['alias'] . '.' . $FromModel->primaryKey . ' = ' . $FromModel->alias . '.' . $FromModel->{$relationType}[$Model->alias]['foreignKey']
);
} elseif($relationType == 'hasMany') {
return $options['conditions'] = array(
$Model->alias . '.' . $FromModel->{$relationType}[$Model->alias]['foreignKey'] . ' = ' . $FromModel->alias . '.' . $FromModel->primaryKey
$options['alias'] . '.' . $FromModel->{$relationType}[$Model->alias]['foreignKey'] . ' = ' . $FromModel->alias . '.' . $FromModel->primaryKey
);
}
break;
Expand Down

0 comments on commit 8b3e841

Please sign in to comment.