GORM -> Beziehungen mit Kriterien-Objekt laden

Hier finden sich Fragen und Ergänzung zur Dokumentation. // All questions and discussions about the documentation.
Well
Beiträge: 263
Registriert: 25.10.2009, 11:00:19
Wohnort: Beuren
Kontaktdaten:

GORM -> Beziehungen mit Kriterien-Objekt laden

Beitrag von Well » 02.04.2010, 15:16:45

hey :)

meine nächste frage: wie kann ich beim gorm die objekte, die ich mittels loadRelatedObjects() lade, sortieren? Eine methode alâ loadRelatedObjectsByCriterion() existiert ja gemäß API nicht?!
Zuletzt geändert von Well am 22.09.2010, 23:28:07, insgesamt 1-mal geändert.

Screeze
Beiträge: 1920
Registriert: 05.08.2009, 09:49:04
Kontaktdaten:

Re: GORM -> Bezierhungen mit Kriterien-Objekt laden

Beitrag von Screeze » 02.04.2010, 15:20:41

Das nicht, aber die Methodendefinition ist:

Code: Alles auswählen

GenericORRelationMapper::loadRelatedObjects  	(  	&$   	 object,
		$  	relationName,
		GenericCriterionObject $  	criterion = null	 
	) 

Du kannst also als 3. parameter wenn du willst ein Criterion übergeben.


edit:
bzw wenn du vom DomainObject aus gehst ist es der 2. parameter:

Code: Alles auswählen

GenericDomainObject::loadRelatedObjects  	(  	$   	 relationName,
		GenericCriterionObject $  	criterion = null	 
	) 	

Well
Beiträge: 263
Registriert: 25.10.2009, 11:00:19
Wohnort: Beuren
Kontaktdaten:

Re: GORM -> Bezierhungen mit Kriterien-Objekt laden

Beitrag von Well » 02.04.2010, 17:52:22

dankeschön :)

Well
Beiträge: 263
Registriert: 25.10.2009, 11:00:19
Wohnort: Beuren
Kontaktdaten:

Re: GORM -> Bezierhungen mit Kriterien-Objekt laden

Beitrag von Well » 02.04.2010, 22:26:27

Noch eine Frage: Gibt es auch eine Möglichkeit, durch das Kriterien-Objekt die Operatoren kleiner als und größer als im WHERE-Statement zu nutzen?
So wie ich das sehe kann man mit addPropertyIndicator nur den ist gleich Operator verwenden?! Was gibt es noch für andere Wege?

Screeze
Beiträge: 1920
Registriert: 05.08.2009, 09:49:04
Kontaktdaten:

Re: GORM -> Bezierhungen mit Kriterien-Objekt laden

Beitrag von Screeze » 03.04.2010, 11:29:51

Hmm das ist allerdings eine gute Frage - ich befürchte das geht derzeit nicht.
Wäre allerdings ein wünschenswertes Feature.

Alternative bis dahin:
Bau die abfrage mit dem addPropertyIndicator, setz den logstatement parameter auf true, such aus der logdatei die entsprechende Abfrage raus, editiere sie nach deinen wünschen, und benutze dann loadObjectListByTextStatement

Well
Beiträge: 263
Registriert: 25.10.2009, 11:00:19
Wohnort: Beuren
Kontaktdaten:

Re: GORM -> Bezierhungen mit Kriterien-Objekt laden

Beitrag von Well » 04.04.2010, 00:31:46

hm, okay.

dann nochmals danke :)

Benutzeravatar
dr.e.
Administrator
Beiträge: 4606
Registriert: 04.11.2007, 16:13:53

Re: GORM -> Bezierhungen mit Kriterien-Objekt laden

Beitrag von dr.e. » 05.04.2010, 19:41:05

Hallo Well,

derzeit unterstützt der GORM nur Vergleiche auf Basis von Identität ("=") und Näherung ("LIKE") eines Attributes, nicht aber größer/kleiner. Das können wir aber gerne für das nächste Release als Feature aufnehmen. Bis dahin kannst du aber ohne weiteres die von Ralf beschriebene Vorgehensweise nutzen.

Sollen wir das für 1.13 einplanen?
Viele Grüße,
Christian


Megger
Beiträge: 1233
Registriert: 04.11.2008, 10:57:37

Re: GORM -> Bezierhungen mit Kriterien-Objekt laden

Beitrag von Megger » 28.07.2010, 11:13:59

Hi

Wollte mal nachfragen ob dieses Feature schon irgendwo vorhanden ist? Wie ich gesehen habe gibt es schon einen 1.13 Branch im SVN!
Tutorial: Browsergame mit dem APF (Die ersten Parts handeln von Installation und Inbetriebnahme des APFs, deswegen sicherlich auch für alle Nicht-Browsergame-Programmierer interessant)

APF-Version
  • Entwicklung: 2.0
  • Produktiv: 1.15

Benutzeravatar
dr.e.
Administrator
Beiträge: 4606
Registriert: 04.11.2007, 16:13:53

Re: GORM -> Bezierhungen mit Kriterien-Objekt laden

Beitrag von dr.e. » 28.07.2010, 23:01:28

Hi Megger,

noch gibt es das nicht und ich sehe auch, dass es in der Roadmap fehlt. :( Ich habe das Thema aber direkt ergänzt, so dass es nicht in Vergessenheit gerät. Hast du Lust ein Proposal zu für die Implementierung zu schreiben?
Viele Grüße,
Christian

Megger
Beiträge: 1233
Registriert: 04.11.2008, 10:57:37

Re: GORM -> Bezierhungen mit Kriterien-Objekt laden

Beitrag von Megger » 29.07.2010, 10:54:41

Im Moment löse ich es per PHP, aber ich werde es sicher mal im GORM einfügen, dann stelle ich es natürlich zur Verfügung
Tutorial: Browsergame mit dem APF (Die ersten Parts handeln von Installation und Inbetriebnahme des APFs, deswegen sicherlich auch für alle Nicht-Browsergame-Programmierer interessant)

APF-Version
  • Entwicklung: 2.0
  • Produktiv: 1.15

Screeze
Beiträge: 1920
Registriert: 05.08.2009, 09:49:04
Kontaktdaten:

Re: GORM -> Bezierhungen mit Kriterien-Objekt laden

Beitrag von Screeze » 29.07.2010, 11:05:41

Wie wärs mit der Methode
addPropertyByOperator($operator, $name, $value)

wobei $operator dann alles sein kann, wie z.b. '>' oder '<' oder was man sonst braucht^^

Benutzeravatar
dr.e.
Administrator
Beiträge: 4606
Registriert: 04.11.2007, 16:13:53

Re: GORM -> Bezierhungen mit Kriterien-Objekt laden

Beitrag von dr.e. » 29.07.2010, 11:53:38

Hallo Megger, hallo Ralf,

die Ansätze sollten wir beide diskutieren. Ralf's finde ich schon mal nicht verkehrt.

@Megger: postest du mal deinen Ansatz?
Viele Grüße,
Christian


Megger
Beiträge: 1233
Registriert: 04.11.2008, 10:57:37

Re: GORM -> Bezierhungen mit Kriterien-Objekt laden

Beitrag von Megger » 09.08.2010, 23:22:02

Ohh ähm ja :oops: Morgen :D

Edit:
Ich würde "addPropertyIndicator" im "GenericCriterionObject" um einen optionalen Parameter erweitern und diesen dann direkt einsetzen. (Zeile 156 - 159)

Code: Alles auswählen

public function addPropertyIndicator($attributeName,$attributeValue,$compare = '='){
         $this->__Properties[$attributeName] = $compare. ' ' .$attributeValue;
       // end function
      }
Dann muss noch "__buildWhere" in "GenericORRelationMapper" angepasst werden (Zeile 176 - 183)

Code: Alles auswählen

if(substr_count($propertyValue,'%') > 0 || substr_count($propertyValue,'_') > 0){
                  $whereList[] = '`'.$this->__MappingTable[$objectName]['Table'].'`.`'.$propertyName.'` LIKE \''.$propertyValue.'\'';
                // end if
               }
               else{
                  $whereList[] = '`'.$this->__MappingTable[$objectName]['Table'].'`.`'.$propertyName.'` '.$propertyValue.'\'';
                // end else
               }
Zufrieden bin ich mit der Lösung allerdings irgendwie nicht
Tutorial: Browsergame mit dem APF (Die ersten Parts handeln von Installation und Inbetriebnahme des APFs, deswegen sicherlich auch für alle Nicht-Browsergame-Programmierer interessant)

APF-Version
  • Entwicklung: 2.0
  • Produktiv: 1.15

Antworten