Diskuze: Vyhledání pomocí DQL dotazu. Doctrine 2

Člen

Zobrazeno 11 zpráv z 11.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |


Ahoj,
mám takový pocit, že v DQL nepůjde JOINovat entity, které spolu nemají
žádný vztah, ale možná by mohlo fungovat něco jako
return $this->em->createQuery('
SELECT PARTIAL user.{id,username,route}, PARTIAL settings.{id, description}, PARTIAL article.{id, title, description}, PARTIAL category.{id, name, description}
FROM App\Model\Entities\User user
INNER JOIN user.settings settings
JOIN App\Model\Entities\Article article WITH user.username = article.title
JOIN App\Model\Entities\Category category WITH user.username = category.name
WHERE user.username = %:param%
')
->setParameter('param', $text)
->setMaxResults(5)
->getResult();
Entity, které k sobě nemají relaci, lze spojovat pomocí operátoru WITH,
viz http://docs.doctrine-project.org/…anguage.html (můžeš to
najít pomocí řetězce "Joins between entities without associations were not
possible ...").
Ovšem zde je problém, že by se jméno usera muselo přesně shodovat s
názvem článku / kategorie, což není úplně to, co chceš.
Nevím, zda v DQL vůbec půjde to, co chceš, určitě by ale mělo jít to
vyhledat v čistém SQL a pokud potřebuješ entity, tak je pak namapovat
ručně (zábavná práce).
Ahoj, původně jsem se chtěl zeptat v samostatném vlákně, ale když už
je to tady tak nakouslí ...
S tím %, nevíš jak se to dělá v DQL ? Když to napíšu do toho dotazu, tak
dostanu
[Syntax Error] line 0, col 222: Error: Expected Literal, got '%'
ale když to dám z tomu parametru.
->setParameter('category', %$parameter%)
tak mi to nikdy nic nenajde kategorii 'test', když zadám 't'
Jsi si jistý, že je to správně? U mého vyhledávání to nefunguje.:/
Ahoj, nevím, jestli to píšu nějak špatně, ale mě to
->setParameter('category', "%{$parameter}%")
nikdy nic nenajde, Ani když mám v databázi 'test' a zadám jako parametr něco z toho slova, třeba ('e', 't','test'). Ale když tam dám jen
->setParameter('category', "$parameter")
a zadám 'test', tak mi to vyhledá
return $this->em->createQuery('
SELECT PARTIAL category.{id, route, description, name}
FROM App\Model\Entities\Category category
WHERE category.name = :name
')
->setParameter('name', "%{$searchText}%")
->setMaxResults($limit)
->getResult();
když tam mám ty procenta, tak mi to nenajde kategorii s názvem "category", i když zadám její celý název. Když tam ty procenta nedám a zadám celý název, tak se kategorie najde.
Dej tam
WHERE category.name LIKE :name
a mělo by to být ok 
Dík. Musím říct, že
na to jsem úplně zapomněl 
Zobrazeno 11 zpráv z 11.