id v modelu

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

Vyšel jsem ze vzorového příkladu Akrabat.forms. Pokud použiji konstrukci

<?php
$termine->delete((int) $this->getParam('id'));
?>

tak se generuje dotaz

"DELETE FROM `termines` WHERE `id` IN (52 )"

Jak mám dibi donutit, aby použila místo id můj identifikátor termineId?
Zřejmě to nějak dostat do modelu, bo u každý tabulky se id jmenuje jinak.

Díky za tip.

Mas3r
Člen | 116
+
0
-

Musíš změnit $primary u tvého DibiModelu. viz.:

https://api.dibiphp.com/…leX.php.html#44

Editoval Mas3r (25. 11. 2008 13:51)

romansklenar
Člen | 655
+
0
-

Můžeš si změnit primární klíč, jeho datový typ i jméno tabulky (není podmínkou, že třída se jmenuje stejně jako tabulka v db):

class MyModel extends DibiTableX
{
    /** @var string  primary key name */
    protected $primary = 'termineId';

    /** @var string  table name */
    protected $name = 'tableName';

    /** @var string  primary key type */
    protected $primaryModifier = '%i';
}

Spíš ale směřuj dotazy na dibi do dibifóra.

EDIT: Mas3r byl o 21 sekund rychlejší :)

Editoval romansklenar (25. 11. 2008 13:45)

RaR
Člen | 42
+
0
-

ok díky moc, příště se polepším. Pomohlo nastavit $primary v modelu.