Načtení dat z databáze do textového pole
- xmilde
- Člen | 13
Zdravím, rád bych se zeptal, jak udělat to, aby se mi načítala data z databáze do textového pole popřípadě textarea. Toto pole bych pak dále editoval ( tady už vím jak ). Poradí mi někdo? Raději přidám zdroják daleného modelu pro načtení dat z databáze:
use Nette\Database\Connection,
Nette\Database\Table\Selection;
class CenikAdmin extends Selection{
public function __construct(\Nette\Database\Connection $connection){
parent::__construct('cenik', $connection);
}
}
a presenteru kde vytvářím komponentu s textovým polem:
public function createComponentCenik(){
$form = new Form();
$form->addText('stroj', 'Nazev stroje:', 50);
return $form;
}
- petr.pavel
- Člen | 535
Nepochopil jsem tvůj CenikAdmin, takže ho ignoruju. Pro naplnění výchozími hodnotami každopádně není potřeba.
Schéma může být následující (z hlavy):
<?php
class Admin_CenikPresenter extends Admin_BasePresenter {
public function renderEdit($cenikId) {
$cenik = $db->cenik[$cenikId];
// už jsem zapomněl syntaxi Nette/Database, tohle je pro NotORM
$this['cenik']->setDefaults($cenik);
}
public function createComponentCenik() {
// ...
}
}
?>
- duke
- Člen | 650
Řádek pro NotORM:
$cenik = $db->cenik[$cenikId];
… lze v Nette Database zapsat buď takto:
$cenik = $db->table('cenik')->get($cenikId);
… nebo takto:
$selection = $db->table('cenik');
$cenik = $selection[$cenikId];
To druhé je spíš pozůstatek z NotORM, takže raději ten první způsob. Nedokážu říct, jaký je mezi těmito dvěma způsoby konkrétní rozdíl, ale nějaký nejspíš bude (vliv na cachovaní, optimalizaci dotazů, atp.).
Jinak celý adresář praktických ukázek s Nette\Database máš zde.