指定された条件を満たすエンティティを削除します。どうしたらいいですか?実際にあなたができる前に最初にあなたのエンティティを取得する必要が未定義のメソッドのDrupal \コア\ Configを\エンティティ\クエリー\クエリへの呼び出し::削除()いくつかの条件でエンティティを削除するDrupal 8
0
A
答えて
0
:
$current_user = \Drupal::currentUser()->id();
$storage = \Drupal::entityManager()->getStorage('context');
$query = $storage->getQuery()->condition('user_id', $current_user);
$query = $storage->getQuery()->delete();
$query->condition('user_id', $current_user);
$query->condition('key_text', $key);
$query->execute();
しかしコードを返します:致命的なエラー削除してください。このメソッドは、それらの更新や情報の取得にも必要です。以下のコードが役に立ちますようお願いいたします。
$current_user = \Drupal::currentUser()->id();
$ids = \Drupal::entityQuery('context')
->condition('user_id', $current_user)
->execute();
$itemsToDelete = $this->entityTypeManager->getStorage('context')
->loadMultiple($ids);
foreach ($itemsToDelete as $item) {
$item->delete();
}
0
エンティティを照会するには、entityQueryを使用できます。以下の例ではこれを使用しています。
// Get all users with email containing "xyz"
$query = \Drupal::entityQuery('user')
->condition('mail', "XYZ", 'CONTAINS');
$uids = $query->execute();
// Load these entities ($uids) in our case using storage controller.
// We call loadMultiple method and give $uids array as argument.
$itemsToDelete = \Drupal::entityTypeManager()->getStorage('user')
->loadMultiple($uids);
// Loop through our entities and deleting them by calling by delete method.
foreach ($itemsToDelete as $item) {
$item->delete();
}
0
エラー・メッセージが、あなたの設定エンティティを照会するため使用しているクラスがdelete()
メソッドを持っていないという事実に起因しています。これはコンテンツエンティティにも当てはまります。 delete()
メソッドはエンティティによって実装されるため、正しいコードは次のようになります。
$storage = \Drupal::entityTypeManager()->getStorage('context');
$query = $storage->getQuery();
$ids = $query->condition('user_id', $current_user)
->condition('key_text', $key)
->execute();
foreach ($storage->loadMultiple($ids) as $entity) {
$entity->delete();
}
entity.query service deprecated in favor of EntityStorageInterface::getQuery()
を参照してください。
0
複数のエンティティを削除するには、エンティティストレージのdelete()
メソッドを使用します。すべてを繰り返す必要はありません。 https://stackoverflow.com/a/43786945/442022から撮影
$query = \Drupal::entityQuery('taxonomy_term');
$query->condition('vid', 'tags');
$tids = $query->execute();
$storage_handler = \Drupal::entityTypeManager()->getStorage($entity_type);
$entities = $storage_handler->loadMultiple($tids);
$storage_handler->delete($entities);
。
関連する問題
- 1. フィールドから条件を条件付きで削除するDrupalノードフォーム
- 2. クイックソートはいくつかの条件を削除します
- 3. 条件付きフィールドdrupal 8(コンテンツタイプ用)
- 4. Java 8ストリーム - 条件に基づいたイテレータのマップと削除
- 5. Drupal 8のif else array_key_exists条件を複数作成する
- 6. いくつかの条件
- 7. 条件で行を削除する
- 8. 条件付き行SQLでの削除
- 9. 条件の行を削除する
- 10. Drupal 8のモジュールアンインストールでコンテンツを削除する
- 11. Drupal WebForm条件
- 12. JDBC条件文の削除
- 13. R - いくつかの条件の1つを満たすベクトルの項目を削除する方法
- 14. 2つの配列から条件付きで削除
- 15. 複数の条件に基づいて1つの文書を削除/引く
- 16. VBA:行を削除し、条件に基づいていくつかの行を保持する方法?
- 17. モデル条件を削除するには?
- 18. 条件付きでデータフレームから行を削除する
- 19. 複数の条件から削除
- 20. PostgreSQLでのカスケード条件の削除
- 21. Hive/Imapala - 削除句を実行する:[削除] [テーブル] WHERE [条件] '
- 22. 追加の条件でリストから重複を削除する
- 23. 2つの条件でテーブルから不要な行を削除する
- 24. ng-classのいくつかの条件
- 25. SQL Serverの:いくつかの条件
- 26. drupal 8からjquery 2.2.4を削除する(独自にロードしています)
- 27. Drupalプライベートディレクトリ条件付きhtaccess?
- 28. 条件を除くハイブクエリ
- 29. のJava 8のJava 8で条件
- 30. いくつかの条件例えば
このコードスニペットは歓迎されていますが、いくつかの助けを提供するかもしれませんが、* how *と* why *の説明があれば大幅に改善されます(// meta.stackexchange.com/q/114762)これは問題を解決します。あなたが今質問している人だけでなく、将来読者のための質問に答えていることを忘れないでください!説明を追加するためにあなたの答えを[編集]し、どんな制限と前提が適用されるかを示してください。 –