Podivna chyba pri mazani a naslednem vybirani – nette database
- Ja
- Člen | 260
Cau,
dnes se mi podarila objevit podivna chyba, snippet vypada zhruba takto:
<?php
$this->context->galerie->delete($id);
$this->template->categories = $this->context->galerie->getAll();
$this->flashMessage('Smazáno');
$this->invalidateControl('flashMessage');
$this->invalidateControl('categories');
?>
jak je videt, invaliduje se snippet categories a ted pozor. Jakmile nejdriv smazu konkretni zaznam z db, tak getAll() metoda uz nic nevybere. Ale pokud ten radek s delete($id) zakomentuju, pak getAll() normalne pri prekresleni vrati relevantni data (az na to, ze prispevek s danym ID neni smazan).
To vypada hodne podivne. Nesetkal se s tim nekdo?
Diky moc! Ja
Editoval Ja (30. 4. 2014 12:14)
- Ja
- Člen | 260
Nene
<?php
class GalerieModel extends Nette\Object
{
const
TABLE_NAME = 'galerie',
COLUMN_ID = 'id';
private $table;
/** @var Nette\Database\Context */
private $db;
public function __construct(Nette\Database\Context $db){ $this->db = $db; $this->table = $db->table(self::TABLE_NAME); }
?>
- David Matějka
- Moderator | 6445
aha, ale pouzivas sdileny objekt table
, takze v podstate to
same :)
db->table()
musis volat pokazde znovu, aby to vytvorilo novou
instanci selection – ta totiz funguje jako nejaky query builder a shromazduje
vsechny predchozi ->where()
atd. Jednu selection pouzivej pouze
pro jeden dotaz (maximalne pro nejaky count se jedna selection necha vyuzit pro
vice dotazu)
Editoval matej21 (30. 4. 2014 13:22)