FriendsOfREDAXO / neues

News-Verwaltung (Aktuelles, Pressemitteilungen, Pressestimmen, ...) für REDAXO 5 auf YForm-Basis
MIT License
12 stars 3 forks source link

findByCategoryIds() #81

Closed skerbis closed 4 weeks ago

skerbis commented 1 month ago

Hinzufügen der findByCategoryIds-Methode zur Entry-Klasse

Zusammenfassung:

In diesem Pull Request wird eine neue Methode findByCategories zur Entry-Klasse hinzugefügt. Diese Methode ermöglicht es, Einträge anhand einer oder mehrerer Kategorien zu finden, wobei der Status der Einträge ebenfalls berücksichtigt wird. Die Methode akzeptiert sowohl Strings als auch Arrays als Eingabeparameter für die Kategorie-IDs und ist kompatibel mit PHP 8.2.

Änderungen im Detail:

Anwendungsbeispiel:

// Suche nach Einträgen, die den Kategorien 1 und 2 zugeordnet sind und den Status 1 oder höher haben
$entries = FriendsOfRedaxo\Neues\Entry:findByCategoryIds([1, 2], 1);

// Suche mit einer kommagetrennten Liste von Kategorien als String
$entries = FriendsOfRedaxo\Neues\Entry::findByCategoryIds('1,2', 1);

// Suche nach allen Einträgen mit einem Status von 1 oder höher, ohne Kategorienfilter
$entries = FriendsOfRedaxo\Neues\Entry:findByCategoryIds(null, 1);
alxndr-w commented 1 month ago

Ich habe die Methode noch umbenannt in findByCategoryIds(), da ich hier versuche ein Namensschema innerhalb meiner Addons beizubehalten.

Ich bin mir aber nicht sicher - funktioniert $query->whereInList('category_ids', $category_ids); auch, wenn es sich um eine m:n-Beziehung mit Relationstabelle handelt? Die IDs stehen schließlich nicht wirklich im Feld category_ids.

skerbis commented 3 weeks ago

👍🏻