Refactoring Eloquent.

This commit is contained in:
Taylor Otwell 2011-07-08 07:58:28 -07:00
parent 8b1fe5920b
commit c4eb994fbc
1 changed files with 13 additions and 7 deletions

View File

@ -274,10 +274,13 @@ public function has_and_belongs_to_many($model, $table = null)
$this->relating_key = strtolower(get_class($this)).'_id';
return static::make($model)
->select(array(static::table($model).'.*'))
->join($this->relating_table, static::table($model).'.id', '=', $this->relating_table.'.'.strtolower($model).'_id')
->where($this->relating_table.'.'.$this->relating_key, '=', $this->id);
$relationship = static::make($model);
$relationship->select(array(static::table($model).'.*'));
$relationship->join($this->relating_table, static::table($model).'.id', '=', $this->relating_table.'.'.strtolower($model).'_id');
$relationship->where($this->relating_table.'.'.$this->relating_key, '=', $this->id);
return $relationship;
}
/**
@ -366,9 +369,12 @@ public function __get($key)
{
$model = $this->$key();
return ($this->relating == 'has_one' or $this->relating == 'belongs_to')
? $this->ignore[$key] = $model->first()
: $this->ignore[$key] = $model->get();
if (in_array($this->relating, array('has_one', 'belongs_to')))
{
return $this->ignore[$key] = $model->first();
}
return $this->ignore[$key] = $model->get();
}
return (array_key_exists($key, $this->attributes)) ? $this->attributes[$key] : null;