From 559785f168de1cc238e854912e2f9f1e52ea5925 Mon Sep 17 00:00:00 2001 From: Taylor Otwell Date: Wed, 12 Oct 2011 21:27:29 -0500 Subject: [PATCH] added increment method to query builder. --- laravel/database/grammars/grammar.php | 8 ++++---- laravel/database/query.php | 12 ++++++++++++ 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/laravel/database/grammars/grammar.php b/laravel/database/grammars/grammar.php index 75f5c495..513e0a00 100644 --- a/laravel/database/grammars/grammar.php +++ b/laravel/database/grammars/grammar.php @@ -325,7 +325,7 @@ class Grammar { * @param array $columns * @return string */ - protected function columnize($columns) + public function columnize($columns) { return implode(', ', array_map(array($this, 'wrap'), $columns)); } @@ -340,7 +340,7 @@ class Grammar { * @param string $value * @return string */ - protected function wrap($value) + public function wrap($value) { if (strpos(strtolower($value), ' as ') !== false) return $this->alias($value); @@ -376,7 +376,7 @@ class Grammar { * @param array $values * @return string */ - protected function parameterize($values) + public function parameterize($values) { return implode(', ', array_map(array($this, 'parameter'), $values)); } @@ -391,7 +391,7 @@ class Grammar { * @param mixed $value * @return string */ - protected function parameter($value) + public function parameter($value) { return ($value instanceof Expression) ? $value->get() : '?'; } diff --git a/laravel/database/query.php b/laravel/database/query.php index 9115ded2..003cb317 100644 --- a/laravel/database/query.php +++ b/laravel/database/query.php @@ -581,6 +581,18 @@ class Query { return (int) $this->connection->pdo->lastInsertId($sequence); } + /** + * Increment the value of a column by a given amount. + * + * @param string $column + * @param int $amount + * @return int + */ + public function increment($column, $amount = 1) + { + return $this->update(array($column => Manager::raw($this->grammar->wrap($column).' + '.$amount))); + } + /** * Update an array of values in the database table. *