1

現在、drupal を使用してサイトを作成しています。プロファイル ページのカスタム レイアウトを作成する必要があるため、drupals ユーザー モジュールを変更しています。

残念ながら、アレイを介してアクセスする際に問題が発生しています。

プロファイルのすべてのデータはアレイにあります ($user_profile)

配列は巨大です。オブジェクトをナビゲートしようとしています。

(print_r関数のおかげで)うまくナビゲートしているのですが、今問題に直面しています。

entityInfo:protected というオブジェクトがあります。このオブジェクト内には、さらにオブジェクトがあります (たとえば、このオブジェクト内にあるラベルと呼ばれるオブジェクトにアクセスしようとしています。

問題は、私がこれをやろうとした場合です:

echo $user_profile['profile_medico']['view']['profile2']['2']['field_tags']['#object']->{'entityInfo:protected'}->label 

次のメッセージが届きます

Notice: 未定義のプロパティ: Profile::$entityInfo:protected in include() (D:\xampp\htdocs\specialdr\modules\user\user-profile.tpl.php の 55 行目)。注意: include() で非オブジェクトのプロパティを取得しようとしています (D:\xampp\htdocs\specialdr\modules\user\user-profile.tpl.php の 55 行目)。

このオブジェクトにアクセスし、配列とオブジェクトを通過し続けることができるように、これを正しく記述する方法がわかりません...アクセスする必要があるオブジェクトに到達するまで、まだ長い道のりがあるためです。

ちなみに… アレを見たい方は… http://fancomix.net/bigarray.txt

前もって感謝します。

4

1 に答える 1

0

それは単に->entityInfo:protected必要ではなく、アクセス修飾子または可視性修飾子です。var_dump()プロパティに関する情報を提供するためにのみ表示されます。PHP では、オブジェクト プロパティ (およびメソッドも) を public、protected、または private として宣言できます。可視性の詳細については、マニュアル を参照してください。

protectedプロパティはオブジェクト メソッドからのみアクセスできることを意味します。外部アクセスはできないため、プロパティを取得することはできません。ただし、クラスには getter メソッドを含めることができます。そのProfileクラスの定義を調べて見つけるか、可能であれば、getter メソッドに変更しpublicたり、getter メソッドを作成したりするなど、必要な変更を行う必要があります。

于 2012-09-19T10:43:13.183 に答える