Upload obrázku s popisem do DB
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- jim.street
- Člen | 26
Ahoj,
vytvořil jsem si databázi (id_obrazku int AI, popis varchar, odkaz
varchar).
Chci si vytvořit formulář, který mi umožní vložit obrázek do databáze,
abych jej mohl poté jednoduše vykreslit přes <td n:foreach=„$obrazky as
$o“></td>
Zatím jsem nevalidoval formuláře, ale už dlouho se s tím trápím a
nemůžu se pohnout, nefunguje mi zpracování. Mohli byste mě
nakopnout/poradit mi?
Jednotlivé metody:
<?php
public function createComponentAddImageForm() {
$form = new Nette\Application\UI\Form();
$form->addText('popis','Zadejte popis ')
->setRequired();
$form->addUpload('upload', 'Vyberte obrázek');
$form->addSubmit('add', 'Nahrát');
$form->onSuccess[] = [$this, 'addFormSucceeded'];
$form->addProtection();
return $form;
}
public function addFormSucceeded($form)
{
$values = $form->getValues();
try {
if($values['upload']->isOk())
{
$fileName = "img_".Strings::webalize($values['upload']->getName(), '.');
$fileTarget = '/images/badges/'.$fileName;
$values['upload']->move($fileTarget);
}
$uspechy = Obrazky::getInstance();
$uspechy->addImage($values, $fileTarget);
$this->flashMessage('Obrázek byl úspěšně přidán', 'success');
$this->redirect('this');
} catch (Exception $e) {
throw new Exception($e);
}
}
//Model obrazky
public function addImage($popis, $odkaz) {
$isConencted = dibi::isConnected();
if($isConencted) {
$data = array(
'popis' => $popis,
'odkaz' => $odkaz,
);
$query = dibi::insert('obrazky', $data)->execute();
}
}
?>
Editoval jim.street (1. 12. 2014 15:57)
- jim.street
- Člen | 26
Sorry, když jsem to viděl tady na foru lépe barevně odlišné, tak jsem to opravil a už to funguje :D
Editoval jim.street (1. 12. 2014 17:05)