特定のフィールド値のユーザー(エンティティ)を取得するにはどうすればよいですか?


8

特定の値を入力したユーザーをカスタムユーザーフィールドに返す関数を書きたいのですが。

すべてのユーザーにカスタムの誕生日フィールドがあるとしましょう。特定の誕生日を持つすべてのユーザーを取得するための最良の方法は何ですか?

field_data_field_birthdayテーブルを検索し、field_birthday_valueが指定された値と一致するentity_id(この場合はユーザーID)を返すDBクエリを作成して、ユーザーをロードできます。

これは少し粗雑に思えますが、このユースケースで使用できる汎用関数はありますか?エンティティAPIまたはフィールドAPIのどちらでしょうか?

回答:


12

私が尋ねたユースケースの簡単な例:

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

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

魅力のように働いた。
アンデルス

致命的なエラーを回避するために、これに含める名前空間を教えてください。
生徒の
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.