Přístup k záznamu ihned po jeho odstranění

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

Zdravím,
odstraňuji záznam z DB a chci tuto akci logovat způsobem, že:

  1. odstraním záznam z DB
  2. zaloguji, že byl odstraněn záznam s definovaným ID, v tomto modulu, tímto uživatelem apod.

Čili potřebuji se k záznamu dostat i poté, co jsem ho odstranil. Možná to jde.


dump("A".$permission->module->name);
$permission->delete();
dump("B".$permission->module->name);

Výstup:
"ANastavení systému" (20)
"BNastavení systému" (20)

$permission->delete();
dump("B".$permission->module->name);

Výstup:
Notice: Trying to get property of non-object na řádku "dump..."

Jak je možné, že v prvním případě dostanu výsledek i po odstranění z DB a v druhém případě to nejde? Jediná změna, že jsem odebral výpis před samotným odstraněním.

roman.campula
Člen | 60
+
0
-

Aha, tak on není problém v tom, že bych se nedostal k $permission->xyz. On je problém v tom, že přestane fungovat automatické spojení tabulek, čili

toto by fungovalo:

dump("B".$permission->module);

toto už ne:

dump("B".$permission->module->name);
Martk
Člen | 661
+
0
-

Nedělám v nette database, ale zkus toto

$array = $permission->toArray();

Minimálně toto bude fungovat určitě:

$name = $persmission->module->name;
dump("A".$permission->module->name);
$permission->delete();
dump("B".$name);
roman.campula
Člen | 60
+
0
-

Ano, přesně tak jsem to měl dříve, ale přišlo mi zbytečné si vytvářet dalších X proměnných nebo pole na uchování výsledku, když jsem jednou náhodou zjistil, že i po smazání to v $permission zůstane. To zůstane, ovšem už asi bez možnosti navázání na další tabulky.