Přičítání hodnoty v databázi

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Proloo
Člen | 24
+
0
-

Zdravím, potřebuju v databázi vždy přičítat 1 (nebo odečítat), jedná se o funkci líbí/nelíbí.
Ale nevím jak to mám napsat.

Mám toto, ale ať zkouším co zkouším, nemůžu přijít na správnej tvar.

$this->context->createPhotos()->where("id", $id)->update(array(
        'rating' => ????,
        ));

Hledal jsem tady, na NotORM webu, ale nic. Tak díky za případnou radu :)

vvoody
Člen | 910
+
0
-
$photo = $this->context->createPhotos()->where("id", $id);

// takto
$photo->update(array(
	'rating' => $photo->rating + 1,
));

// alebo takto
$photo->rating = $photo->rating + 1;
$photo->update();
Proloo
Člen | 24
+
0
-

Takže jedním dotazem to nejde? To se mi nějak nezdá.

Editoval Proloo (10. 6. 2012 17:00)

Nifty
Člen | 45
+
0
-

Jde to pomocí SqlLiteral

$this->context->createPhotos()->where("id", $id)->update(array(
        'rating' => new \Nette\Database\SqlLiteral('rating + 1'),
));

Editoval Nifty (10. 6. 2012 17:08)

Proloo
Člen | 24
+
0
-

To je ono, díky.