Práca s date a neexistujuca ID
- Fusek
- Člen | 4
Ahojte,
potreboval by som poradiť ako pracovať s date. Ukladám si do DB čas vo formáte 2016–05–28 01:21:24 teda TYP datetime. A potreboval by som ho vykresliť napríklad ako len 28.5.2016 a rôzne s ním pracovať.
Ďalej by ma zaujímalo ked renderujem niečo podľa id teda renderDefault($id) ako zabezpečiť to že ak ID neexistuje hodí to 404
Ďakujem
- Fusek
- Člen | 4
Mysteria napsal(a):
Pokud používáš Nette Database, tak se to vrací jako DateTime typ, takže na tom můžeš použít třeba
->format('d. m. Y')
if (*id neexistuje*) $this->error('Not Found');
Čo ak ho potrebujem napríklad rozdeliť a ťahám v array spolu s ostatními a podobne nie je na to nieč rozumnejšie ?
- Fusek
- Člen | 4
/**
* @return \Nette\Database\Table\Selection
* Vráti výpis všetkých noviniek
*/
public function getNews()
{
return $this->database->table(self::NEWS_TABLE)->order('date DESC')->fetchAll();
}
Vytiahnem si údaje o novinkách a vratia sa mi vo formáte 2016–05–28 01:21:24
potrebujem ich vykresliť do template
<td>25.5.2016</td>
<td>1:21:24</td>
a neviem ako ho spracovať do tejto podoby
- GEpic
- Člen | 566
Fusek napsal(a):
/** * @return \Nette\Database\Table\Selection * Vráti výpis všetkých noviniek */ public function getNews() { return $this->database->table(self::NEWS_TABLE)->order('date DESC')->fetchAll(); }
Vytiahnem si údaje o novinkách a vratia sa mi vo formáte 2016–05–28 01:21:24
potrebujem ich vykresliť do template
<td>25.5.2016</td>
<td>1:21:24</td>a neviem ako ho spracovať do tejto podoby
Však ti to @Mysteria odpověděl. Nette\Database automaticky vrací
místo 2016–05–28 01:21:24
objekt typu DateTime
(https://api.nette.org/…ateTime.html).
Takže si předáš záznamy do šablona a poté to použiješ v šabloně
například takto:
<!-- 'vytvoreno' je sloupec s tvým datumem -->
<td>{$novinka->vytvoreno|date:'j.n.Y'}</td> <!-- (Datum ve formátu dd.mm.yyyy) -->
<td>{$novinka->vytvoreno|date:'H:i:s'}</td> <!-- (Datum ve formátu hodiny:minuty:sekundy) -->
EDIT:
A to druhé řeším takto (presenter):
public function renderNovinka($id = null)
{
if ($id != null && $novinka = $this->novinkyModel->get($id) {
// lets show it
} else {
throw new BadRequestException('Tato novinka neexistuje');
}
}
Kde v modelu je poté např:
# ...
/**
* @var int $key primarni klic
* @return ActiveRow radek
*/
public function get($key) {
return $this->database->table('novinky')->get($key);
}
# ...
Editoval GEpic (16. 7. 2016 21:45)