Wie erhalte ich Benutzer (Entitäten) für einen bestimmten Feldwert?


8

Ich möchte eine Funktion schreiben, die Benutzer, die einen bestimmten Wert eingegeben haben, in ein benutzerdefiniertes Benutzerfeld zurückgibt.

Nehmen wir an, es gibt für jeden Benutzer ein benutzerdefiniertes Geburtstagsfeld. Was wäre der beste Weg, um alle Benutzer mit einem bestimmten Geburtstag zu bekommen?

Ich könnte eine DB-Abfrage erstellen, die die Tabelle field_data_field_birthday durchsucht und die Entity_id (s) (in diesem Fall die Benutzer-ID (s)) zurückgibt, für die der field_birthday_value einem bestimmten Wert entspricht, und dann die Benutzer lädt.

Dies scheint ein wenig grob zu sein. Gibt es generische Funktionen für diesen Anwendungsfall? In der Entitäts-API oder der Feld-API vielleicht?

Antworten:


12

Einfaches Beispiel für den Anwendungsfall, nach dem ich gefragt habe:

$query = new EntityFieldQuery();
$query->entityCondition('entity_type', 'user')
  ->fieldCondition('field_birthday', 'value', $birthday);

$result = $query->execute();
$users_ids = array_keys($result['user']);

Lief wie am Schnürchen.
Anders

Bitte geben Sie den Namespace an, um einen schwerwiegenden Fehler zu vermeiden.
Schüler
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.