Come ottenere utenti (entità) per un determinato valore di campo?


8

Voglio scrivere una funzione che restituisca gli utenti che hanno inserito un certo valore in un campo utente personalizzato.

Diciamo che esiste un campo compleanno personalizzato per ogni utente. Quale sarebbe il modo migliore per ottenere tutti gli utenti con un certo compleanno?

Potrei creare una query DB che cerca la tabella field_data_field_birthday e restituisce il entity_id (s) (che in questo caso sarebbe l'id utente (s)) per cui field_birthday_value corrisponde a un dato valore e quindi caricare l'utente (i).

Sembra un po 'rozzo, ci sono funzioni generiche per questo caso d'uso disponibili? Nell'API di entità o nel campo API forse?

Risposte:


12

Semplice esempio per il caso d'uso che ho chiesto di:

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

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

Ha funzionato come un fascino.
Anders,

Si prega di avvisare lo spazio dei nomi da includere per evitare errori fatali.
Allievo
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.