Browse Source

Merge pull request #751 from jasonlewis/patch-9

Allow find to be called non-statically on Eloquent models
Taylor Otwell 12 years ago
parent
commit
cfc0577d50
1 changed files with 5 additions and 5 deletions
  1. 5 5
      laravel/database/eloquent/model.php

+ 5 - 5
laravel/database/eloquent/model.php

@@ -230,11 +230,9 @@ abstract class Model {
 	 * @param  array   $columns
 	 * @param  array   $columns
 	 * @return Model
 	 * @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;
 			return static::$$method;
 		}
 		}
 
 
+		$underscored = array('with', 'find');
+
 		// Some methods need to be accessed both staticly and non-staticly so we'll
 		// 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
 		// keep underscored methods of those methods and intercept calls to them
 		// here so they can be called either way on the model instance.
 		// 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);
 			return call_user_func_array(array($this, '_'.$method), $parameters);
 		}
 		}