ActiveRow::update() neresetuje modifikovaná data?

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

Ahoj.

Narazil jsem na zvláštnost:

$row = $table->get( <id> );
$row->state = Row::STATE_NEW;
$row->update();

$otherTable->where('id', 23)->update(array(
	'neco' => 'jineho',
)); // trigger tohoto updatu změní status záznamu $row

$row->updated = new DateTime;
$row->update();

Ta zvláštnost je v tom, že při druhém $row->update() se evidentně znovu aplikuje změna sloupce state, což dle mého není dobře.

Řešení bych viděl v úpravě: pullík.


Samozřejmě je zbytečné si nalhávat, že tahle úprava pomůže konzistenci, což nepomůže – úprava triggerem se přímo v $row neprojeví. Jde mi čistě o to, že při vícenásobném volání update() je IMHO zbytečné opakovaně zahrnovat už „zastaralá“ modified data.

Ale třeba něco přehlížím, proto prosím případně o osvětlení. Díky.

Editoval uestla (9. 12. 2012 1:17)

mildabre
Člen | 62
+
0
-

Místo abych Ti poradil se zase zeptám já – co to znamená, že je parametr předávaný metodě uveden v ostrých závorkách (viz. Tvůj kód výše):

$table->get( <id> )
uestla
Backer | 799
+
0
-

Je to čistě pro příklad, takový „pseudokód“…