NDB where like v dvoch tabulkach

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

Caute viete mi poradit? chcem urobit nieco taketo:

$this->productRepository->findAll()
->where("name LIKE ? OR productitem.code LIKE ?", "%" . $filter . "%","%" . $filter . "%");

hladam v tabulke product.name, alebo productitem.code a v tabulke productitem mam kluc na tabulku product product_id, ale toto mi vracia:

No reference found for $product->productitem
David Matějka
Moderator | 6445
+
0
-
//v 2.0.x
"productitem:code"

//nebo v dev verzi

":productitem.code"
duskohu
Člen | 778
+
0
-

Dakujem :-)

saimons
Člen | 293
+
0
-

matej21 napsal(a):

//v 2.0.x
"productitem:code"

//nebo v dev verzi

":productitem.code"

V nove verzi stara syntaxe nefunguje? Nevim teda duvod teto zmeny, ale je to pro me nepochopitelne. Pokud clovek chce udrzovat naky velky projekt na aktualni verzi, tak nette to teda moc neusnadnuje.

David Matějka
Moderator | 6445
+
0
-

ne, nefunguje. duvod zmeny byl asi jen, ze tento zpusob zapisu je takovy… logictejsi.

ale muzes zkusit zatlacit na hracha, aby tam udelal zpetnou kompatibilitu :)

hrach
Člen | 1836
+
0
-

V nove verzi stara syntaxe nefunguje? Nevim teda duvod teto zmeny, ale je to pro me nepochopitelne. Pokud clovek chce udrzovat naky velky projekt na aktualni verzi, tak nette to teda moc neusnadnuje.

  • duvod zmeny: jasna logicka struktura, kdy dvojtecka mela znacit vazbu hasMany. Coz je ale nelogicke, odkdy ma tabulak productitem několik sloupcu code?
  • duvod proc je to bez zpetne kompatibility: protoze to nejde udelat. Napr. zapis
// novy zapis
author.book:book_tag.tag.name
// stary zapis
author.book.book_tag:tag.name

tezko podle neceho detektovat, zda clovek pouziva stary nebo novy zapis.