Jak na Order s parametrem

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
zool
Člen | 144
+
0
-

Ahoj chtěl jsem se zeptat, jak by se dalo vyřešit, abych mohl do order přidat parametr

asi nějak takto

$produkty->order("10 * MATCH( zbozi.nazev ) AGAINST( ? IN BOOLEAN MODE) + MATCH( rychle_info, informace_krat, informace, kod ) AGAINST( '*".$fi."*' IN BOOLEAN MODE) DESC", $fi);

musím mít toto

$produkty->order("10 * MATCH( zbozi.nazev ) AGAINST( '*".$fi."*' IN BOOLEAN MODE) + MATCH( rychle_info, informace_krat, informace, kod ) AGAINST( '*".$fi."*' IN BOOLEAN MODE) DESC");

A nejhorší je, že když mám například hledaný výraz „Dlouhý výraz.“, tak mi to napsarsuje takto

'*`Dlouhy` `vyraz`.*'

Díky

enumag
Člen | 2118
+
0
-

Bez pull requestu #813 pravděpodobně v rámci Selection nijak. Budeš muset použít $connection->query().

zool
Člen | 144
+
0
-

Aha díky a dá se nějak pak výsledek z query převést na typ Selection?

enumag
Člen | 2118
+
0
-

Ne.

zool
Člen | 144
+
0
-

Škoda a ještě jeden dotaz, jde nějak vypnout to upravení řetězce? Pokud zapíšu toto

$fi = "Dlouhý výraz.";
"10 * MATCH( zbozi.nazev ) AGAINST( '*".$fi."*' IN BOOLEAN MODE) + ...

tak ať mi to tam nedoplní ty apostrofy?
Děkuji

enumag
Člen | 2118
+
0
-

Ne. Ve where klauzuli se přesně na to používá SqlLiteral, který ale v order pokud vím nefunguje. Což nás opět přivádí k výše zmíněnému pull requestu. :-)

Přesněji: já o takové možnosti nevím (a uvítal bych ji).

Editoval enumag (7. 1. 2013 22:59)

zool
Člen | 144
+
0
-

Super děkuji nevadí, já právě nechci modifikovat třídu, protože, kdybych aktualizoval nette a na toto zapoměl, přestalo by to fungovat, a to by bylo špatně, zkusím to vyřešit trochu jinak… Díky za rady

enumag
Člen | 2118
+
0
-

Tak on i @hrach tady psal, že něco takového plánuje, tzn. dříve nebo později by v Nette měla být i oficiální podpora.

Je jen věc názoru zda si kvůli tomu dočasně udržovat vlastní fork. Udělal jsem to už několikrát a časem se ty změny buď dostaly do Nette nebo jsem zjistil, že je nepotřebuju. Nyní žádný vlastní fork neudržuju, jen posílám drobné pull requesty.

hrach
Člen | 1834
+
0
-

Jako hned tak to nebude, vim o tom. Ja bych osobne tryDelimite zrusil… to je Daviduv vymysl a ja v tom nevidim zadny plus.

enumag
Člen | 2118
+
0
-

@hrach: Proti tomu pull requestu #813 něco máš? Psal jsi že plánuješ něco podobného, takže přímo tohle se ti zřejmě nelíbí. Zrušení tryDelimite bych se nebránil.

hrach
Člen | 1834
+
0
-

Mám, skoro všechno :D Zaprvé chcu sám si přepracovat metodu where. Od té se to odvíjí, a pak se mi taky nelíbí public $delimitable = false a public $examinable = false. Nejde o public, ale tak obecne …

Caine
Člen | 216
+
0
-

Hehe, skoda, ze se tady hledi na nejakou pseudocistotu kodu nez na prakticky pouziti. Lidi ten SqlLiteral potrebovali uz buh vi pred jakou dobou, potrebujou ho ted a potrebovat ho budou. Ty delimitable a examinable jsem tam dal ciste z praktickejch duvodu. Nekdo muze treba chtit, aby se z literalu vytvareli joiny, jindy (defaultne) nikoli, protoze to zbytecne vytvari nevyuzity joiny (jako v soucasnym stavu), to samy pro delimitable. Kazdopadne vysekat je z toho neni problem…

Jenze ndb je takova pomala hrach man show, kde si holt budem muset jeste hodne dlouho pockat.. nebo udelat vlastni fork, aby se clovek dockal nejaky pouzitelny formy.. bohuzel :(nic ve zlym)

hrach
Člen | 1834
+
0
-

Nejde vubec o pseudocistotu kodu, ale o to, ze nez se za neco postavim, tak sam o tom chcu byt presvedcen. Merge prava sice mam, ale nevyuzivam je. S Davidem jsem nikdy! nic nekonzultoval bokem, vsechno me zapojeni do vyvoje NDB je to, ktere mate pravo videt. Ja delam PR, on je merguje, zadna soukroma komunikace neprobiha… (skoda? :D).

  • pomaly vyvoj: ano, bohuzel.
  • PRs: bohuzel vetsina lidi nema znalosti NDB aby mohli delat PR, casto nepridavaji ani testy.
  • je treba myslet na doprednou kompatibilitu, nez neco mergnu…
  • velmi pomalu se zbavuji „prasaren“ z NotOrmu – at uz bugu, nebo treba raktorizace do SqlBuilder apod.
  • add #813 PR: zkusim se na to mrknout, ale mam strach, ze ten where budu chtit jinak…
thorewi
Člen | 84
+
0
-

osobne se za vyreseni toho PR primlouvam, at uz jednim nebo druhym zpusobem… ono prave treba do toho Niftygridu potrebuju dat Selection, takze to nemuzu resit pres query…