Nastavení databáze ze získaných dat z formuláře

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

Zdravím,

potřeboval bych vyřešit jeden problém. Z formulářových dat obdržím informace potřebné k připojení do databáze (server, uživatel, heslo, databáze) a nevím jak tyto informace zahrnout do config.neon, kde se tyto informace zadávají ještě před prací z databází. A tudíž se nedokážu k této databázi připojit, protože nemám nikde nastavené tyto přihlašovací údaje získané z formuláře.

Nevíte někdo náhodou jak tento problém elegantně vyřešit. Jak údaje z formuláře nastavit do konfiguračního souboru a tím pádem mít možnost pracovat z databází?

Majkl578
Moderator | 1364
+
0
-

To děláš nějaký instalační script aplikace/cms?
Nejsnazší bude mít formulář na stránce, která databázi nevyžaduje. Při odeslání formuláře pak můžeš vygenerovat konfigurační soubor, např. db.config.neon. Zároveň bys pak v bootstrapu tento soubor podmíněně načítal:

if (file_exists($dbConfigFile = __DIR__ . '/config/db.config.neon')) { // podmíněně načte soubor, pokud existuje ...
	$configurator->addConfig($dbConfigFile, $configurator::NONE); // ... a nepoužije rozlišování podle sekcí
}

Neon soubor se dá generovat z PHP pole pomocí Nette\Utils\Neon::encode().

James
Člen | 54
+
+1
-

Něco takového by se mi hodilo, na základě získaných dat z formuláře vygenerovat nový config.neon soubor, do kterého by se uložili data z formuláře nutná pro připojení k databázi a z nově vygenerovaného souboru poté pomocí Nette\Database\Connection vytvořit spojení do databáze.

Jak přesně se tedy nechá generovat config.neon soubor, z návodu na který si sem dával link, jsem to příliš nepochopil.

James
Člen | 54
+
0
-

Ještě mě napadlo, zle nějak přes proměnné přistupovat k parametrům dsn, user, pass přímo v konfiguračním souboru config.neon, že by se nemusel generovat nový, nebo se mé myšlenky ubírají špatným směrem?