Nette config: Databázový prefix…

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

Existuje v konfigu niečo ako database.prefix = moj_prefix_ ?

Editoval Peppy (17. 7. 2010 19:27)

Majkl578
Moderator | 1364
+
0
-

Neexistuje, dibi to nepodporuje, musíš sám, např. přes dibi substituce.

Peppy
Člen | 137
+
0
-

aha…ok, ďakujem…

Michalek
Člen | 210
+
0
-

No, já mám v config.ini

database.driver = mysql
database.host = localhost
database.lazy = TRUE
database.charset = utf8
database.profiler = TRUE
database.database = jmeno
database.prefix = cms_

a v aplikaci pak

public static function connect()
 {
 $dbconfig = Environment::getConfig('database'); // nacteme z config.ini
 dibi::connect($dbconfig);
 dibi::addSubst('cms', $dbconfig->prefix); // pridame prefix tabulek do dibi
 unset($dbconfig);
}

a přes dibi se připojuju

dibi::select('*')->from(':cms:tabulka');

Což je teda kombinace obou dvou vašich příspěvků, ne? :)

Editoval Michalek (17. 7. 2010 20:43)

Peppy
Člen | 137
+
0
-

díky…toto som potreboval :)…ja som to upravil na:

Config.ini

[development < common]
database.driver = mysql
database.lazy = TRUE
database.host = localhost
database.username = root
database.password =
database.name = techit
database.prefix = prefix

Bootstrap.php

// 2b) load configuration from config.ini file
Environment::loadConfig();

// 3b) load database configuration
$cfg = Environment::getConfig('database');

// 4b) connect
dibi::connect($cfg);
dibi::addSubst('prefix', $cfg->prefix);

Prefix tabuliek je v konfigu, používam konštantu :prefix: …ďakujem, solved! :)

Majkl578
Moderator | 1364
+
0
-

Substituce lze údajně přidat přímo v configu:

database.substitutes.foo = bar

bude vypadat jako :foo:

Michalek
Člen | 210
+
0
-

A dokonce to funguje, ověřeno. To jsou věci :)

westrem
Člen | 398
+
0
-

Majkl578 napsal(a):

Substituce lze údajně přidat přímo v configu:

database.substitutes.foo = bar

bude vypadat jako :foo:

Uzasne! Presne toto som hladal a povodne som to planoval riesit ako kolega Michalek

mkoubik
Člen | 728
+
0
-

Ještě detail, substituce může být i za prázdný string, pak to vypadá líp: $db->select('*')->from('::table')

nanuqcz
Člen | 822
+
0
-

mkoubik napsal(a):

Ještě detail, substituce může být i za prázdný string, pak to vypadá líp: $db->select('*')->from('::table')

Mě to nefunguje, dělám něco špatně, anebo je tato možnost v novějších verzích zrušená?

config.ini:

[common]
...
database.charset = utf8
database.lazy = FALSE
database.host = localhost
database.username = root
database.password = ''
database.substitutes.'' = nc_
...

Articles.php:

...
      public function getAll(){
            return Dibi::select('*')->from("::articles")->orderBy('created DESC');
      }
...

vrací chybu Missing substitution for '' expression. :-(

Aurielle
Člen | 1281
+
0
-

Zkusil bych to nadefinovat přímo v PHP…

nanuqcz
Člen | 822
+
0
-

funguje, díky :-)

Majkl578
Moderator | 1364
+
0
-