web-dev-qa-db-ja.com

警告:array_flip():反転できるのはSTRING値とINTEGER値のみです! DrupalDefaultEntityController-> cacheGet()内

私はこの警告を解決するために多くのことを試みましたが、結局何もありませんでした。誰でもこの警告の問題を調査できますか?.

Warning: array_flip(): Can only flip STRING and INTEGER values! in DrupalDefaultEntityController->load() (line 175 of /var/www/html/std-build/httpdocs/includes/entity.inc).
Warning: array_flip(): Can only flip STRING and INTEGER values! in DrupalDefaultEntityController->load() (line 175 of /var/www/html/std-build/httpdocs/includes/entity.inc).
Warning: array_flip(): Can only flip STRING and INTEGER values! in DrupalDefaultEntityController->cacheGet() (line 388 of /var/www/html/std-build/httpdocs/includes/entity.inc).
Warning: array_flip(): Can only flip STRING and INTEGER values! in DrupalDefaultEntityController->load() (line 175 of /var/www/html/std-build/httpdocs/includes/entity.inc).
Warning: array_flip(): Can only flip STRING and INTEGER values! in DrupalDefaultEntityController->cacheGet() (line 388 of /var/www/html/std-build/httpdocs/includes/entity.inc).
Warning: array_flip(): Can only flip STRING and INTEGER values! in DrupalDefaultEntityController->load() (line 175 of /var/www/html/std-build/httpdocs/includes/entity.inc).
Warning: array_flip(): Can only flip STRING and INTEGER values! in DrupalDefaultEntityController->cacheGet() (line 388 of /var/www/html/std-build/httpdocs/includes/entity.inc).
Warning: array_flip(): Can only flip STRING and INTEGER values! in DrupalDefaultEntityController->load() (line 175 of /var/www/html/std-build/httpdocs/includes/entity.inc).
Warning: array_flip(): Can only flip STRING and INTEGER values! in DrupalDefaultEntityController->cacheGet() (line 388 of /var/www/html/std-build/httpdocs/includes/entity.inc).
1
Sugandh Khanna

この patch は私にとっては仕事です。これを試してください

1
vgoradiya

これは主に、コードの問題または使用しているモジュールのバグに関連しています。

基本的には DrupalEntityControllerInterface の実装を検証する必要があります。また、バグではないため、Drupalコアが @ vgoradiya の提案に従ってコアにパッチを適用しないでください。 Drupalコア。

コンセンサスは悪いデータで問題が発生するようで、より深い問題を隠すDrupalDefaultEntityControllerにセーフガードを追加するのではなく、問題のモジュールレベルで修正する必要があるようです。ここでエラーが発生すると、開発者がD7 APIを誤って使用しているという警告になります。 - @ jessebeach

したがって、どのモジュールが Entity API を正しく実装していないかを特定する必要があります。

以下も参照してください。


問題の原因となっているモジュールの開発者は、以下を確認してください。

  • 配列にNULL値が含まれていないことを確認します。そうでない場合は、次のトリックを使用します。

    _$arr = drupal_map_assoc($arr, function($v) { return (string) $v; });
    _
  • Examples モジュール(entity_example)で、開発者がエンティティを実装する方法を確認してください。

  • 正しい_$ids_構造を使用してエンティティをロードしています。
  • デバッガーまたはdebug_backtrace()を使用して、問題をデバッグします。
2
kenorb