database query a nasledne pouzite where
- MKI-Miro
- Člen | 281
Ahojte
v repository mam
function getPaidMalls()
{
return $this->database->query("
SELECT m.id AS id, m.name AS name, m.company_id AS company_id,
m.latitude AS latitude, m.longitude AS longitude, m.enabled AS enabled,
o.paid AS paid, o.date_paid AS date_paid
FROM mall m
JOIN order_item oi ON oi.mall_id = m.id
JOIN `order` o ON o.id = oi.order_id
WHERE o.paid = 1
");
nasledne v presenteri by som chcelspravit nieco take
$this->mallRepository->getPaidMalls()->where(...)
kedze query vracia ResultSet tak podmienka Where uz pise chybu
ako je mozne napisat vlastny sql select a nasledne este moct pouzit v presenteri ->where ?
vdaka
Editoval MKI-Miro (12. 6. 2014 11:02)
- MartinitCZ
- Člen | 580
Nepoužívej $this->databse->query(...)
, ale použij
$this->database->select('...')
Nicméně budeš mít problém. Používáš „rezervované názvy“ jako
order v názvech sloupců, tabulek!! To opravdu nedělej, jsou z toho
jen problémy.
Něco jako:
$this->database->select('*')->from('mall')->where('order_item.order.paid = ?', 1);
Editoval martinit (12. 6. 2014 11:20)
- Jan Tvrdík
- Nette guru | 2595
Nazvat sloupec order
ničemu nevadí, akorát ho musíš
správně escapovat, což bys stejně měl dělat u všech sloupců.
- MartinitCZ
- Člen | 580
Ano bude, přečti si doc . Nette Database něco jako ->leftJoin nemá. Od toho je tu magie pomocí teček a dvojteček.