Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

YOrm Erläuterungen zu Collection-, Query- und Dataset-Methoden #1459

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

alxndr-w
Copy link
Contributor

No description provided.

@alxndr-w
Copy link
Contributor Author

@gharlan Copilot hat mir noch einige mehr Methoden vorgeschlagen, die ich allerdings nicht auf ihr Vorhandensein oder auf Halluzinationen überprüft habe. Bitte gerne nochmal auf sachliche Richtigkeit überprüfen. Ich habe jeden Satz inhaltlich mit meinem Wissen überprüft, erkannte Fehler korrigiert - mir sind keine weiteren Fehler aufgefallen.

- `getIds()`: Gibt die IDs aller Datensätze in der Sammlung zurück.
- `getTable()`: Gibt die Tabelle zurück, zu der die Sammlung gehört.
- `getTableName()`: Gibt den Namen der Tabelle zurück, zu der die Sammlung gehört.
- `getUniqueValue()`: Gibt einen eindeutigen Wert für die Sammlung zurück.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Der Satz klingt für mich, als würde die Methode eine Art Hash für die gesamte Sammlung liefern.
Tatsächlich übergibt man aber einen Feldnamen an die Methode, und die Methode prüft dann, ob der Wert in dem Feld bei allen Elementen der Sammlung gleich ist. Wenn ja, wird der Wert geliefert, ansonsten null.

Selbst benötigt man die Methode eher nicht. Sie wird genutzt, wenn man mehrere Datensätze gleichzeitig bearbeitet. Für die Entscheidung, ob in dem jeweiligen Formularfeld ein Wert initial gesetzt wird (weil für alle Datensätze gleich) oder ob das Feld leer gelassen wird (weil unterschiedliche Werte).

Weiß nicht, wie man es in einem Satz besser beschreiben kann.

- `implode()`: Fügt die Werte aller Datensätze in der Sammlung zu einem String zusammen.
- `isEmpty()`: Überprüft, ob die Sammlung leer ist.
- `isValid()`: Überprüft, ob alle Datensätze in der Sammlung gültig sind.
- `isValueUnique()`: Überprüft, ob ein bestimmter Wert in der Sammlung eindeutig ist.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Die Methode gehört mit zu getUniqueValue (siehe oben, wird intern in getUniqueValue genutzt für den Check). Die Beschreibung hier passt aber denke ich so.

- `getTable()`: Gibt die Tabelle zurück, zu der die Sammlung gehört.
- `getTableName()`: Gibt den Namen der Tabelle zurück, zu der die Sammlung gehört.
- `getUniqueValue()`: Gibt einen eindeutigen Wert für die Sammlung zurück.
- `getValues()`: Gibt die Werte aller Datensätze in der Sammlung zurück.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Zu einem bestimmten Key. Also die Werte eine Spalte.

- `map()`: Wendet eine Funktion auf alle Datensätze in der Sammlung an.
- `populateRelation()`: Füllt ein Relationsfeld für alle Datensätze in der Sammlung.
- `save()`: Speichert alle Datensätze in der Sammlung.
- `setData()`: Lädt Daten in alle Datensätze in der Sammlung.
Copy link
Member

@gharlan gharlan Dec 5, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Das passt nicht, glaube ich. Man tauscht damit eher die Datensätze in der Sammlung aus. Man hat danach also eine Collection mit den an setData übergebenen Datensätzen. Die vorherigen Datensätze bleiben unberührt, sind nur nicht mehr in dem Collection-Objekt.
(Ist mehr eine interne Methode)

- `shuffle()`: Mischelt die Datensätze in der Sammlung.
- `slice()`: Gibt einen Teil der Datensätze in der Sammlung zurück.
- `sort()`: Sortiert die Datensätze in der Sammlung.
- `split()`: Teilt die Sammlung in zwei Teile
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nicht in zwei Teile, sondern in die gewünschte Anzahl. split(5) würde also 5 Teile liefern.

- `query()`: Führt die Abfrage aus und gibt ein `rex_yform_manager_query` Objekt zurück.
- `queryOne()`: Führt die Abfrage aus und gibt ein `rex_yform_manager_query` Objekt für den ersten Datensatz zurück.
- Save (Entspricht `INSERT` oder `UPDATE` in SQL.)
- `save()`: Speichert die Daten, die der Abfrage hinzugefügt wurden.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Gibt es in der Query-Klasse nicht.

- `getTableName()`: Gibt den Namen der Tabelle zurück, auf die sich die Abfrage bezieht.
- Where (Entspricht `WHERE` in SQL.)
- `resetWhere()`: Setzt die WHERE-Bedingung der Abfrage zurück.
- `setWhereOperator()`: Setzt den Operator für die WHERE-Bedingung der Abfrage.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also wie die where-Bedingungen verknüpft werden (AND oder OR).

- loadData
Die Klasse `rex_yform_manager_dataset` stellt eine Reihe von Methoden zur Verfügung, um mit Datensätzen zu arbeiten. Hier sind einige der wichtigsten Methoden:

- `create($table, array $data = [])`: Erstellt einen neuen Datensatz in der angegebenen Tabelle und gibt ein `rex_yform_manager_dataset` Objekt für diesen Datensatz zurück.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wirklich erstellt wird der Datensatz erst, wenn man danach dann save() aufruft.
Vielleicht aber trotzdem ok so die Beschreibung.


- `create($table, array $data = [])`: Erstellt einen neuen Datensatz in der angegebenen Tabelle und gibt ein `rex_yform_manager_dataset` Objekt für diesen Datensatz zurück.
- `get($table, $id)`: Gibt ein `rex_yform_manager_dataset` Objekt für den Datensatz mit der angegebenen ID in der angegebenen Tabelle zurück.
- `getAll($table, $where = null, array $orderBy = [])`: Gibt alle Datensätze in der angegebenen Tabelle als Array von `rex_yform_manager_dataset` Objekten zurück. Optional kann eine WHERE-Bedingung und eine Sortierreihenfolge angegeben werden.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nicht als Array, sondern als Collection-Objekt.
Where und Sortierung können nicht angegeben werden.

- `getForm()`: Gibt ein YForm-Formular für den aktuellen Datensatz zurück. (EXPERIMENTELL)
- `getId()`: Gibt die ID des aktuellen Datensatzes zurück.
- `getMessages()`: Gibt eine Liste der Fehlermeldungen zurück, die beim letzten Speichern des aktuellen Datensatzes aufgetreten sind.
- `getRaw()`: Gibt die Rohdaten des aktuellen Datensatzes als assoziatives Array zurück.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Das passt nicht. Die Methode ist ähnlich wie get($id), liefert also ein Dataset-Objekt.
Aber anders als get() ruft getRaw den Datensatz noch gar nicht ab, und prüft auch nicht, ob die ID überhaupt existiert.
Wird mehr für interne Zwecke benötigt.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bzw. man kann es auch nutzen, um einem neuen Datensatz eine fixe ID zu vergeben. Also ::getRaw($id) statt ::create().

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants