diff --git a/laravel/database/eloquent/model.php b/laravel/database/eloquent/model.php index 91aedd6e..2c28b8f9 100644 --- a/laravel/database/eloquent/model.php +++ b/laravel/database/eloquent/model.php @@ -230,11 +230,9 @@ abstract class Model { * @param array $columns * @return Model */ - public static function find($id, $columns = array('*')) + public function _find($id, $columns = array('*')) { - $model = new static; - - return $model->query()->where(static::$key, '=', $id)->first($columns); + return $this->query()->where(static::$key, '=', $id)->first($columns); } /** @@ -746,10 +744,12 @@ abstract class Model { return static::$$method; } + $underscored = array('with', 'find'); + // Some methods need to be accessed both staticly and non-staticly so we'll // keep underscored methods of those methods and intercept calls to them // here so they can be called either way on the model instance. - if (in_array($method, array('with'))) + if (in_array($method, $underscored)) { return call_user_func_array(array($this, '_'.$method), $parameters); }