Nette Framework – Database table select where
- Takeshi
- Člen | 596
Zdravim vsetkych … mam jeden mensi problem.
Klasicke vypisanie udajov z tabulky:
<?php
<div n:foreach="$conn->table('movies') as $mov">
{$mov->name}
</div>
?>
takymto sposobom mi vypise prirodzene vsetky riadky v ramci stlpca ‚name‘(vsetky nazvy filmov).
Ja by som ale potreboval, aby mi do jednej premennej dalo iba jeden
nazov.
Teda napriklad do premennej {$mov->name} by mi dalo iba 1 nazov …
ako sa to da? som z toho jelen
P.S. nieco ako {$mov->name->where(‚id‘,3)} mi nefunguje
- ViPEr*CZ*
- Člen | 814
Takeshi napsal(a):
Ja by som ale potreboval, aby mi do jednej premennej dalo iba jeden nazov.
Tomu nějak nerozumím… jak do jedný proměnný jeden název? Když to
přeložíme do řeči, tak se ti tam děje to, že pokud ten výběr
z databáze něco obsahuje, tak se začne procházet a vypisovat se každej
řádek (v tomto případě vždy jméno). A jelikož jste udělal takový
dotaz do DB jaký tu máte, tak se samozřejmě vybrali všechny řádky.
Toto {$mov->name->where(‚id‘,3)} je nesmysl. Nemůžete volat metodu
nad něčím co není objekt. Podle toho co máte v tom where by jste chtěl
asi vybrat jen jeden řádek s id = 3. Toho by jste docílil takto:
<div n:foreach="$conn->table('movies')->where(‚id‘,3) as $mov">
A tady to where jde, protože metoda table před tím vrací instanci objektu Nette\Database\Selection, která má implementovanou metodu where… API
- Takeshi
- Člen | 596
ViPErCZ napsal(a):
Ospravedlnujem sa, ale niekedy sa neviem vyjadrovat :-) To co ste mi vy odpovedali som skusal aj predtym a islo mi to. Ja len ci sa to neda nejako jednoduchsie, vzhladom nato, ze sa jedna o dlhy nazov
<?php
<div n:foreach="$conn->table('movies')->where(‚id‘,3) as $mov">
?>
Rozmyslal som, ze to pouzijem na zmenu jazyka (tabulka pre anglictinu a pre slovencinu). A teda pre kazde slovo pouzit taky dlhy nazov je neprakticke.
P.S. Skusam nove veci…
- Takeshi
- Člen | 596
ViPErCZ napsal(a):
No tak si napište nějaký model s obsluhou filtrů a do šablony si pak pošlete jen nějaký alias. V presenteru nemusíte do šablony posílat conn a v šabloně pak sestavit Selection. To můžete právě sestavit v nějaké třídě, která Vám přes nějaký get řekněme toto vrátí. ;-)
Dik za radu … nemate k tomu nejaky manual? :-) Lebo vobec neviem ako to urobit, a tak to skusam svojpomocne :-D